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

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

Barbara Streisand
リリース: 2025-01-22 15:21:10
オリジナル
584 人が閲覧しました

How to Implement Conditional Logic in SQL SELECT Statements?

SQL SELECT ステートメント内の条件ロジック

SQL の SELECT ステートメントは、IF...THEN 構造を直接サポートしません。 ただし、条件付きロジックを実装するには、CASE ステートメントと IIF 関数 (特定の SQL 言語で使用可能) という 2 つの効果的な代替手段が存在します。

CASE ステートメントの利用

CASE ステートメントは、他のプログラミング言語の IF...THEN の機能を反映しています。条件を順番に評価し、最初に満たされた条件に基づいて値を返します。

構文:

<code class="language-sql">SELECT
    CASE
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE default_result
    END AS new_column_name,
    other_columns
FROM your_table;</code>
ログイン後にコピー

例:

<code class="language-sql">SELECT
    CASE
        WHEN IsActive = 'Yes' THEN 'Active'
        WHEN IsActive = 'No' THEN 'Inactive'
        ELSE 'Unknown'
    END AS Status,
    *
FROM Users;</code>
ログイン後にコピー

このクエリは、「ステータス」列を追加し、IsActive 列の値に基づいて「アクティブ」、「非アクティブ」、または「不明」を割り当てます。

IIF 関数の使用 (SQL Server)

IIF 関数 (SQL Server 2012 で導入) は、SELECT ステートメント内の条件付きロジックを処理する簡潔な方法を提供します。

構文:

<code class="language-sql">IIF(condition, true_result, false_result)</code>
ログイン後にコピー

例:

<code class="language-sql">SELECT
    IIF(OrderTotal > 100, 'High Value', 'Low Value') AS OrderCategory,
    *
FROM Orders;</code>
ログイン後にコピー

この例では、「OrderCategory」列を作成し、OrderTotal に応じて注文を「高価値」または「低価値」に分類します。 IIF は SQL Server に固有のものであり、他のデータベース システムでは使用できない場合があることに注意してください。 より広範な互換性を確保するには、一般に CASE ステートメントが推奨されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート