我有一個SQL查詢,其中包括以下語句在CASE WHEN語句不工作,由於NULL SQL不平等值
SELECT
(CASE
WHEN field1 > 0 THEN field1
ELSE (field2 * field3)
END) AS result
FROM table
這應該返回FIELD1的價值,除非是「0」,在該情況下該聲明返回兩個其他字段的產品。
我遇到的問題是,如果field1爲NULL,則此語句返回NULL。
我想修改我的SQL,以便在field1爲NULL時返回字段2 & 3的產品,就像在field1爲'0'時一樣。
我曾嘗試以下:
SELECT
(CASE
WHEN field1 > 0 THEN field1
WHEN field1 IS NULL THEN (field2 * field3)
ELSE (field2 * field3)
END) AS result
FROM table
但NULL似乎仍然通過語句和NULL滲透每當FIELD1爲NULL仍然返回。
首先檢查「NULL」。 – Kermit 2013-02-13 14:56:37
你確定'field2'或'field3'不是'NULL'嗎? – Dukeling 2013-02-13 14:56:56
您的查詢已經是你想要的了。當'field1'爲'NULL'時,它返回產品'field2 * field3'。如果它們中的任何一個通過'field2'或'field3'也是'NULL',則(返回的)產品將是'NULL'。 – 2013-02-13 15:05:32