[英]Case in Select query in sql
以下是我的带有case语句的SQL。
select
a.AssociationClubNumber,
case a.AssociationClubNumber
when NULL then 'NA'
when '' then 'NA'
else a.AssociationClubNumber
end as 'AssociationClubNumber'
from
[dbo].[Customer] a
如果a.AssociationClubNumber
为NULL
或""
,则CASE
应返回字符串“ NA”。
我尝试了几种不同的组合,但是以某种方式无法执行。
使用其他形式的case
-进行显式比较:
select c.AssociationClubNumber,
(case when c.AssociationClubNumber is null or
c.AssociationClubNumber = ''
then 'NA'
else c.AssociationClubNumber
end) as new_AssociationClubNumber
from [dbo].[Customer] c;
您正在使用简单的case
。 即使采用简单形式, NULL
也永远不会匹配-基本上是因为=
不适用于NULL
。
另请注意:
从别名中删除单引号,并且使用is null
select a.AssociationClubNumber,
Case a.AssociationClubNumber
When is NULL THEN 'NA'
WHEN '' then 'NA'
ELSE a.AssociationClubNumber
END as AssociationClubNumber_val
from [dbo].[Customer] a
CASE [value] WHEN NULL THEN END
将永远不会评估为true。 CASE WHEN [value] IS NULL THEN 1 END
您将不得不使用CASE WHEN [value] IS NULL THEN 1 END
。
对于您所拥有的,我将使用:
ISNULL(NULLIF(AssociationClubNumber,'')'NA')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.