次のステートメントを含む SQL クエリがあります
SELECT
(CASE
WHEN field1 > 0 THEN field1
ELSE (field2 * field3)
END) AS result
FROM table
これは field1 の値を返すはずですが、それが '0' の場合、ステートメントは他の 2 つのフィールドの積を返します。
私が抱えている問題は、field1 が NULL の場合、このステートメントが NULL を返すことです。
field1 が '0' の場合と同様に、field1 が NULL の場合にフィールド 2 と 3 の積が返されるように、SQL を修正したいと考えています。
私は次のことを試しました:
SELECT
(CASE
WHEN field1 > 0 THEN field1
WHEN field1 IS NULL THEN (field2 * field3)
ELSE (field2 * field3)
END) AS result
FROM table
しかし、NULL は依然としてステートメントに浸透しているようで、field1 が NULL の場合は常に NULL が返されます。