在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中文網其他相關文章!