带有T-SQL的CASE表达式

Vai*_*ain 2 t-sql sql-server case

我在用:

SELECT
  CASE SR.[ContainerId] WHEN SR.[ContainerId] IS NULL
    THEN 0
    ELSE 1
  END AS [IsSampleReceived]
FROM SomeTable SR where SomeCondition
Run Code Online (Sandbox Code Playgroud)

它没有给我想要的结果.IsSampleReceived永远1.我不知道为什么,也许有些事情是错的WHEN SR.[ContainerId] IS NULL.

Red*_*ter 5

有两种使用格式,CASE您可以将它们混合在一起.

CASE表达式有两种格式:

简单的CASE表达式将表达式与一组简单表达式进行比较以确定结果.

搜索到的CASE表达式计算一组布尔表达式以确定结果.

请参阅http://msdn.microsoft.com/en-us/library/ms181765.aspx

相反,尝试:

select case 
        when SR.[ContainerId] is null
            then 0
        else 1
        end as [IsSampleReceived]
from SomeTable SR
where SomeCondition
Run Code Online (Sandbox Code Playgroud)