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