[英]I want to return a default value as NULL for some condition in SQL Server
我在SQL Server中运行以下SQL查询,当不满足条件时,我需要将默认值返回为'NULL'。 对于某些不符合条件的记录,结果应显示为NULL,但是我得到的空格代替NULL。有人可以帮忙吗?
表中只有几行不符合条件,因此我应该在结果中看到NULL。
SELECT NAME,
CASE
WHEN AGE >=18 AND SEX='M' THEN 'Adult Male'
WHEN AGE>18 AND SEX='M' 'Non-Adult Male'
WHEN AGE >=18 AND SEX='F' THEN 'Adult Female'
WHEN AGE<18 AND TITLE='F' THEN 'Non-Adult Female'
ELSE NULL
END AS AGE_SEX,
ADDRESS,
SALARY
FROM PERSONALS;
您的逻辑不正确。 考虑到case
语句是级联的,这是一种解决方法,即逻辑选择第一个匹配项:
SELECT NAME,
(CASE WHEN AGE >= 18 AND SEX = 'M' THEN 'Adult Male'
WHEN AGE < 18 AND SEX = 'M' THEN 'Non-Adult Male'
WHEN AGE >= 18 AND SEX = 'F' THEN 'Adult Female'
WHEN AGE < 18 AND SEX = 'F' THEN 'Non-Adult Female'
END) AS AGE_SEX
注意: ELSE NULL
是多余的,因为在没有条件匹配时CASE
返回NULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.