如何使用标量函数检查CASE语句中的NULL?

Ste*_*veC 22 t-sql sql-server

当你使用时,你如何NULLCASE声明中检查Scalar Function

我的原始查询是...但它失败了

SELECT  CASE dbo.fnCarerResponse('')
          WHEN NULL THEN 'Pass'
          ELSE 'Fail'
        END
Run Code Online (Sandbox Code Playgroud)

我读了关于使用的SO问题IS NULL,就像这样......

SELECT  CASE dbo.fnCarerResponse('') IS NULL 
          WHEN NULL THEN 'Pass'
          ELSE 'Fail'
        END        
Run Code Online (Sandbox Code Playgroud)

但是这给出了incorrect syntax near the keyword is错误

你能Scalar Function参加CASE吗?

Aar*_*and 31

您正在使用错误的风格CASE-你需要使用CASE WHEN <expression> THEN不是CASE <expression> WHEN <expression> then:

SELECT CASE 
 WHEN dbo.fnCarerResponse('') IS NULL
 THEN 'Pass'
 ELSE 'Fail'
END
Run Code Online (Sandbox Code Playgroud)


jue*_*n d 8

SELECT CASE 
         WHEN dbo.fnCarerResponse('') IS NULL 
         THEN 'Pass'
         ELSE 'Fail'
       END   
Run Code Online (Sandbox Code Playgroud)


Rom*_*ain 5

SELECT  CASE 
          WHEN dbo.fnCarerResponse('') is NULL THEN 'Pass'
          ELSE 'Fail'
        END
Run Code Online (Sandbox Code Playgroud)