ホームページ >データベース >mysql チュートリアル >CASE ステートメントを使用して SQL Server でテーブルを正しく結合する方法

CASE ステートメントを使用して SQL Server でテーブルを正しく結合する方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-20 07:21:14517ブラウズ

How to Correctly Join Tables in SQL Server Using a CASE Statement?

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 条件ごとにブール式が評価され、条件が満たされる場合は 1 (True) を返し、条件が満たされない場合は 0 (False) を返します。
  • 次に、等号 (=) を使用して CASE 式の結果を 1 と比較します。選択した条件が True の場合は 1 を返し、それ以外の場合は 0 を返します。
  • CASE 式が True と評価される行のみが結合結果に含まれます。

この改訂された回答では、元の言語、画像形式、画像の位置は維持されていますが、中心となる意味と技術的な詳細は変更されていません。

以上がCASE ステートメントを使用して SQL Server でテーブルを正しく結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。