当我的表中的数字为0时,我想得到NULL.我可以使用SQL实现这一点吗?
SELECT ID,
Firstname,
Lastname,
CASE Number
WHEN 0 THEN NULL
END
FROM tPerson
Run Code Online (Sandbox Code Playgroud)
错误:
CASE规范中的至少一个结果表达式必须是NULL常量以外的表达式.
提前致谢!
Tho*_*ner 11
正如其他人提到的那样,如果数字不为空,你忘了告诉你的CASE语句返回数字.
但是在SQL Server中你可以使用NULLIF,我认为它更具可读性:
select
id,
firstname,
lastname,
nullif(number, 0) as number
from tperson;
Run Code Online (Sandbox Code Playgroud)
如果您想坚持使用标准SQL,请继续使用CASE:
case when number = 0 then null else number end as number
Run Code Online (Sandbox Code Playgroud)