CASE WHENテストの値をselect文を2度書くことなく、その結果の1つとして値を使用する方法はありますか(長くて面倒かもしれません)。たとえば:2回実行するのではなく、結果の1つをテストする方法はありますか?
SELECT id,
CASE WHEN (
(SELECT MAX(value) FROM my_table WHERE other_value = 1) IS NOT NULL
)
THEN (
SELECT (MAX(value) FROM my_table WHERE other_value = 1
)
ELSE 0
END AS max_value
FROM other_table
は私もTHEN値として(テスト用)SELECTステートメントの最初の実行の結果を使用することができる方法はありますか?最初のSELECTの後に "AS max_value"を使ってみましたが、SQLエラーが出ました。
更新:おっと、トムH.さんが指摘したように、私は元の質問で「IS NOT NULL」を忘れていました。
トム・Hの答えの中のCOALESCE関数は、私が実際にやっているところに行くためのきれいな方法ですが、これは私の質問に対する実際の答えでした。最初にサブクエリで定義するとは思わなかった。 – Charles