ホームページ > データベース > mysql チュートリアル > SQL の CASE ステートメントを使用して If-Then-Else ロジックを実装するにはどうすればよいですか?

SQL の CASE ステートメントを使用して If-Then-Else ロジックを実装するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-29 05:10:11
オリジナル
339 人が閲覧しました

How Can I Implement If-Then-Else Logic Using SQL's CASE Statement?

SQL の If-Then-Else ロジック

SQL では、CASE ステートメントを使用して条件付きロジックを実行する機能が提供されます。 if-then-else 構造の直接的な構文は提供されませんが、一連の条件と対応するアクションを定義できます。

問題:

次のように仮定します。特定の優先順位に基づいてテーブルからデータを選択したい:

  • プロジェクトにレコードがある場合は、戻ります
  • 顧客が記録を持っている場合は、それを返却します。
  • 会社が記録を持っている場合は、それを返却します。

CASE を使用した解決策:

SELECT product, price
FROM table1
WHERE CASE
  WHEN EXISTS (SELECT 1 FROM table1 WHERE project = 1) THEN 1
  WHEN EXISTS (SELECT 1 FROM table1 WHERE customer = 2) THEN 2
  WHEN EXISTS (SELECT 1 FROM table1 WHERE company = 3) THEN 3
  ELSE NULL
END IS NOT NULL;
ログイン後にコピー

このクエリは、各条件を順番に評価します。プロジェクトにレコードがある場合は、一致する行を返します。それ以外の場合は、顧客、次に会社をチェックします。いずれかの条件を満たす行のみが選択されます。

例:

次の表にはサンプル データが含まれています:

product price project customer company
A 10 1 NULL NULL
B 20 NULL 2 NULL
C 30 NULL NULL 3

実行中クエリは次の結果を返します:

product price
A 10

project = 1 の行があるため、他の条件は無視され、製品「A」の行が選択されます。

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

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