这个 SQL CASE WHEN 语句能否缩短?

3

Microsoft SQL Server TSQL中是否有任何功能可以缩短此CASE WHEN语句?

最初的回答:

   CASE 
         WHEN some_column IS NULL 
         THEN 0
         ELSE 1
   END

1
只需将其放在一行上。我知道你可以像答案中建议的那样使用iif,但我个人永远不会这样做。为了缩短代码而降低可读性是我绝对不会做的事情。 - undefined
2个回答

5

对于 SQL Server 2012 及更高版本,您可以使用 IIF() 语句。

SELECT IIF(some_column IS NULL , 0 , 1)

2
您可以使用SQL Server文档中所称的“简单”case表达式,而不是问题中语法使用的“搜索”case表达式。
case some_column when null then 0 else 1 end 

并没有很大的差别,但它更短。

我不认为这个对NULL起作用。试试这个:DECLARE @Null int = NULL; SELECT CASE WHEN @Null IS NULL THEN 0 ELSE 1 END; SELECT CASE @Null WHEN NULL THEN 0 ELSE 1 END - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接