これは説明が難しいでしょうが、ここにあります。
SELECT
2 つの計算の結果を使用して、列の値に対してどの計算値を返すかを決定する句で、CASE 条件を実行しようとしています。
コードサンプルが役立つかもしれません:
これは機能します:
SELECT
A.[COLUMN1]
, B.[COLUMN1]
, CASE
WHEN A.[COLUMN2] + A.[COLUMN3] >= B.[COLUMN2] + B.[COLUMN3] THEN A.[COLUMN2] + A.[COLUMN3]
ELSE B.[COLUMN2] + B.[COLUMN3]
FROM
[TABLE_A] A
INNER JOIN [TABLE_B] B INNER JOIN ON A.ID = B.ID
ここでの問題は、上記のクエリの case ステートメントで、計算を 2 回実行する必要があることです。節に対して 1 回、WHEN
節に対してもう一度THEN
。
私はこのようなことをしたいのですが、SQL はそれに満足していません。
SELECT
A.[COLUMN1]
, B.[COLUMN1]
, CASE
WHEN AB.X >= AB.Y THEN AB.X
ELSE AB.Y
END
FROM ((A.[COLUMN2] + A.[COLUMN3]) X, (B.[COLUMN2] + B.[COLUMN3]) Y)
FROM
[TABLE_A] A
INNER JOIN [TABLE_B] B INNER JOIN ON A.ID = B.ID
これは可能ですか?2 番目の例では、値を 1 回だけ計算し、case ステートメントでWHEN
、節とTHEN
節の両方で値を参照しています。