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

SQL クエリに If-Then-Else ロジックを実装するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 04:59:08829ブラウズ

How Can I Implement If-Then-Else Logic in SQL Queries?

SQL は If-Then-Else ロジックを処理できますか?

優先順位に基づいてテーブルからデータを取得する必要があります。 SQL でこれにどのようにアプローチするかがわかりません。このクエリを詳しく調べて、条件付きロジックを処理するためのオプションを調べてみましょう。

SQL での条件付きロジックの処理

従来のプログラミング言語とは異なり、SQL には if-then がありません。 -else ステートメント。ただし、条件付きロジックを模倣する方法はいくつかあります。

CASE ステートメントの使用

CASE ステートメントは、条件付きロジックを処理する柔軟な方法を提供します。複数の条件を指定し、各条件に基づいて異なる結果を返すことができます。次に例を示します。

SELECT CASE
  WHEN (SELECT COUNT(*) FROM table1 WHERE project = 1) > 0
  THEN (SELECT product, price FROM table1 WHERE project = 1)
  WHEN (SELECT COUNT(*) FROM table1 WHERE customer = 2) > 0
  THEN (SELECT product, price FROM table1 WHERE customer = 2)
  WHEN (SELECT COUNT(*) FROM table1 WHERE company = 3) > 0
  THEN (SELECT product, price FROM table1 WHERE company = 3)
  ELSE 'No price found'
END;

IF-THEN-ELSE ステートメントの使用 (手続き型 SQL)

手続き型 SQL では、IF-THEN-ELSE ステートメントを使用できます。条件を確認し、結果に基づいてさまざまなクエリ ブロックを実行します。 MS SQL は IF-THEN-ELSE を直接サポートしていないことに注意してください。ただし、CASE ステートメントまたは sp_if ステートメントを使用してシミュレーションできます。

UNION 演算子の使用

UNION 演算子を使用すると、複数のクエリの結果を結合して 1 つのクエリを作成できます。単一の結果セット。この方法は、以前のクエリが最初にチェックされるため、あるクエリを他のクエリよりも優先したい場合に便利です。

SELECT product, price FROM table1 WHERE project = 1
UNION
SELECT product, price FROM table1 WHERE customer = 2
UNION
SELECT product, price FROM table1 WHERE company = 3;

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

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