在SQL Server中使用CASE语句正确连接表的技巧:语法错误修正
在SQL Server中,基于CASE条件连接表可能会遇到挑战。本文探讨一个尝试使用CASE语句连接sys.partitions
和sys.allocation_units
表的查询,以及如何解决其语法错误。
语法错误源于在CASE条件中使用了"="。CASE表达式从THEN子句返回一个值,而不是布尔结果。
修正后的语法
以下修正后的语法解决了语法错误:
<code class="language-sql">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) AND a.container_id = p.hobt_id THEN 1 WHEN a.type IN (2) AND a.container_id = p.partition_id THEN 1 ELSE 0 END = 1</code>
解释
修正后的语法使用以下逻辑:
This revised response maintains the original language, image format, and image position while rewording the text for a slightly different presentation. The core meaning and technical details remain unchanged.
以上是如何在SQL Server中使用CASE语句正确连接表?的详细内容。更多信息请关注PHP中文网其他相关文章!