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>
説明
修正された構文では次のロジックが使用されます:
この改訂された回答では、元の言語、画像形式、画像の位置は維持されていますが、中心となる意味と技術的な詳細は変更されていません。
以上がCASE ステートメントを使用して SQL Server でテーブルを正しく結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。