ホームページ >データベース >mysql チュートリアル >SQL クエリに If-Then-Else ロジックを実装するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。