具有IS NULL和NOT NULL的CASE语句


12

还有什么更好的方法可以在SQL Server 2005中编写以下行?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,

3
定义“更好”。
韦斯利2012年

我不熟悉MSSQL,但是如果它在MySQL中具有类似IF函数的功能,则可以编写以下代码:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas 2012年

1
SQL Server 2012中有IIF,但问题是标签2005年
马丁·史密斯

您应该可以使用以下语句完成此操作。isnull(nullif(isnull(ID,'Y'),ID),'N')
杰森·坎伯兰

1
@ Bappy1988为什么它会比Jay的答案更好?
dezso 2012年

Answers:


16

你试过了吗:

CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Value,

我现在只能访问2008,但我希望该语法在2005年仍然可以使用(似乎是最初定义的一部分CASE)。


是的-我确实尝试过,CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Value但是我正在寻找其他更好的方法,例如IF(ID IS NULL, 'YES', 'NO') AS ID_ValueSql女士,以便所有内容都可以放在一行中。请提出任何建议

7
这个答案在一行中。如果需要,可以将整个语句放在一行中。
ypercubeᵀᴹ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.