Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何使用标量函数检查CASE语句中的NULL?_Sql Server_Tsql - Fatal编程技术网

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

Sql server 如何使用标量函数检查CASE语句中的NULL?,sql-server,tsql,Sql Server,Tsql,当您使用标量函数时,如何检查CASE语句中的NULL 我最初的疑问是。。。但它失败了 SELECT CASE dbo.fnCarerResponse('') WHEN NULL THEN 'Pass' ELSE 'Fail' END 我读到关于使用为空的问题,就像这样 SELECT CASE dbo.fnCarerResponse('') IS NULL WHEN NULL THEN 'Pass'

当您使用
标量函数时,如何检查
CASE
语句中的
NULL

我最初的疑问是。。。但它失败了

SELECT  CASE dbo.fnCarerResponse('')
          WHEN NULL THEN 'Pass'
          ELSE 'Fail'
        END
我读到关于使用
为空的问题,就像这样

SELECT  CASE dbo.fnCarerResponse('') IS NULL 
          WHEN NULL THEN 'Pass'
          ELSE 'Fail'
        END        
但这会导致关键字is
error附近的
语法错误


案例
中是否可以使用
标量函数

您使用了错误的
案例
-您需要在当时使用
案例
而不是
当时的案例

SELECT CASE 
 WHEN dbo.fnCarerResponse('') IS NULL
 THEN 'Pass'
 ELSE 'Fail'
END

在列表上下文中使用时,例如SELECT查询的列定义,整个表达式必须用括号括起来,如下所示

     ,LastEditorEmail = (SELECT CASE
        WHEN  CF.LastModifiedBy IS NULL THEN
            NULL
        ELSE
            UE.Email
    END)

您也可以使用这种方式:

SELECT   CASE ISNULL(dbo.fnCarerResponse(''),'NULLVALUE')
           WHEN 'NULLVALUE' THEN 'Pass'
           ELSE 'Fail'
         END
     ,LastEditorEmail = (SELECT CASE
        WHEN  CF.LastModifiedBy IS NULL THEN
            NULL
        ELSE
            UE.Email
    END)
SELECT   CASE ISNULL(dbo.fnCarerResponse(''),'NULLVALUE')
           WHEN 'NULLVALUE' THEN 'Pass'
           ELSE 'Fail'
         END