Can I use CASE statement in a JOIN condition?

前端 未结 9 1956
庸人自扰
庸人自扰 2020-11-22 09:32

The following image is a part of Microsoft SQL Server 2008 R2 System Views. From the image we can see that the relationship between sys.partitions and sys

9条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-22 09:37

    I took your example and edited it:

    SELECT  *
    FROM    sys.indexes i
        JOIN sys.partitions p
            ON i.index_id = p.index_id 
        JOIN sys.allocation_units a
            ON a.container_id = (CASE
               WHEN a.type IN (1, 3)
                   THEN p.hobt_id 
               WHEN a.type IN (2)
                   THEN p.partition_id
               ELSE NULL
               END)
    

提交回复
热议问题