可以在联接条件下使用CASE语句吗?

可以在联接条件下使用CASE语句吗?

下面的图像是MicrosoftSQLServer2008R2系统视图的一部分。从图像中我们可以看到sys.partitionssys.allocation_units取决于sys.allocation_units.type..因此,为了将它们结合在一起,我会写一些类似于这样的东西:

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

但是上面的代码给出了一个语法错误。我想那是因为CASE声明。有人能帮我解释一下吗?


添加错误消息:

MSG 102,15级,状态1,6行语法不正确,接近‘=’。



繁星coding
浏览 474回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL