我有一个包含以下语句的 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 似乎仍然渗透到语句中,并且只要 field1 为 NULL,NULL 仍然会被返回。