2

このように、3 つの異なる select ステートメントがあるとします。

SELECT 'Final', ID FROM Stage WHERE stageCompleted = 1;
SELECT 'Active', ID FROM Stage WHERE StartDate < NOW();
SELECT 'Inactive', ID FROM Stage;

私が望むのは、これらを組み合わせて1つのテーブルを表示する方法です

  • 'Final'最初のクエリで一致したすべての行の文字列と行の ID を返します
  • 'Active'最初のクエリではなく 2 番目のクエリで一致したすべての行の文字列と行の ID を返します
  • 'Inactive'残りのすべての行の文字列と ID を返します。

あらゆる種類の結合を調べましたが、解決しようとしている問題に実際には適合していないようです。SQL で 3 つの選択クエリを組み合わせるにはどうすればよいですか?それぞれが前のクエリの結果を除外します。

4

1 に答える 1

8

ケースステートメントを使用する

SELECT
   CASE WHEN stageCompleted = 1 THEN 'Final'
        WHEN StartDate < NOW() THEN 'Active'
        ELSE 'Inactive'
   END,
   ID
FROM Stage
于 2012-07-06T14:13:26.193 に答える