これは説明が難しいでしょうが、ここにあります。
SELECT2 つの計算の結果を使用して、列の値に対してどの計算値を返すかを決定する句で、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節の両方で値を参照しています。