ホームページ >データベース >mysql チュートリアル >SQL SELECT ステートメントで条件付きロジックを実行するにはどうすればよいですか?

SQL SELECT ステートメントで条件付きロジックを実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-22 15:16:10795ブラウズ

How Can I Perform Conditional Logic in SQL SELECT Statements?

SQL SELECT ステートメント内の条件ロジック: 総合ガイド

SQL では、データを変更またはフィルタリングするために、SELECT ステートメント内に条件付きロジックが必要になることがよくあります。 CASE ステートメントは、多数の SQL 言語でサポートされる多用途のソリューションを提供します。

IF...THEN クエリで SELECT 構造を模倣するには、以下に示すように CASE ステートメントを使用します。

<code class="language-sql">SELECT CAST(
    CASE
        WHEN condition1 OR condition2 THEN value_if_true
        ELSE value_if_false
    END AS data_type) AS new_column, *
FROM table_name;</code>

構文の内訳は次のとおりです。

  • condition1 および condition2: 評価する条件。
  • value_if_true および value_if_false: 条件が true か false に応じて返される値。
  • data_type: new_column 結果のデータ型。
  • table_name: データが選択されるテーブル。

たとえば、Saleable テーブルに Product 列を追加して、ObsoleteInStock のステータスに基づいて製品の在庫状況を示すには、次のようにします。

<code class="language-sql">SELECT CAST(
    CASE
        WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
        ELSE 0
    END AS bit) AS Saleable, *
FROM Product;</code>

CAST を省略した簡略化したバージョンでは、整数の結果が得られます。

<code class="language-sql">SELECT CASE
    WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
    ELSE 0
END AS Saleable, *
FROM Product;</code>

CASE ステートメントはネストしたり、集約関数に統合したりできます。 さらに、SQL Server 2012 では IIF ステートメントが導入され、代替の簡潔な構文

が提供されました。
<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, *
FROM Product;</code>

これにより、SELECT ステートメント内の条件付きロジックが簡素化され、データ操作の柔軟性と効率が向上します。

以上がSQL SELECT ステートメントで条件付きロジックを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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