1. ホーム
  2. sql

[解決済み] SQLでif-then-elseロジックは可能か?重複

2022-12-07 18:31:45

質問

あるテーブルから、ある種の優先順位に基づいてデータを選択する必要があります。

select product, price from table1 where project = 1

-- pseudo: if no price found, do this:
select product, price from table1 where customer = 2

-- pseudo: if still no price found, do this:
select product, price from table1 where company = 3

つまり、価格が project = X で選択したくはない。 customer = Y . 私はちょうど結果の3行を返して終了したい。

SQLでこのようなことをするにはどうしたらいいのでしょうか?CASEステートメントを使って擬似ifを作るのですか? ユニオンや他のスマートなものを使用するのでしょうか?

編集:私はMS SQLを使用しています。

ありがとうございます。

どのように解決するのですか?

次のようなSQLクエリを作成することができます。

IF ((SELECT COUNT(*) FROM table1 WHERE project = 1) > 0) 
    SELECT product, price FROM table1 WHERE project = 1
ELSE IF ((SELECT COUNT(*) FROM table1 WHERE project = 2) > 0) 
    SELECT product, price FROM table1 WHERE project = 2
ELSE IF ((SELECT COUNT(*) FROM table1 WHERE project = 3) > 0)
    SELECT product, price FROM table1 WHERE project = 3