【发布时间】:2018-01-30 16:20:59
【问题描述】:
下面是我的示例代码情况
declare @Ka int = select count(empid) from employee where age between 18 and 22
declare @Kb int = select count(empid) from employee where age between 23 and 30
declare @Kc int = select count(empid) from employee where age between 31 and 35
现在,如果 Ka/Kb/Kc 的值不是 0 或 null,则应显示“x”,否则应显示空白。所以我的选择语句是:
select
CASE WHEN @Ka = 0 then ''
ELSE 'X'
END AS 'Ka',
CASE WHEN @Kb = 0 then ''
ELSE 'X'
END AS 'Kb',
CASE WHEN @Kc = 0 then ''
ELSE 'X'
END AS 'Kc'
所以如果我有更多的参数,我应该像上面一样为每个参数做一个案例陈述吗?有没有办法做单例语句,包括所有符合条件的参数?或者有没有一种简单的方法来完成类似的事情?
【问题讨论】:
-
请注意,您的变量在这里永远不能有
NULL的值。对表执行COUNT将始终返回一个值,即使它不包含任何行。然而,这不是其他聚合函数的工作方式(0 行结果集的COUNT(*)将返回 0,然而,0 行结果集的SUM(Column)不会返回结果)。
标签: sql sql-server select case