我有一个SQL查询,它根据名为ks2en的列中的值进行分组。在列中是空白结果很好地分组,但我想用文本'No KS2'替换空白值,以便在分组时我得到'No KS2'而不是空值。
以下是我的查询目前的结果:
KS2 No Result A*
1 0
2a 0 0
3c 1 0
3b 0 0
3a 1 0
4c 0 0
4b 0 0
4a 0 0
5c 0 0
5b 0 0
这就是我希望它的样子:
KS2 No Result A*
No KS2 1 0
2a 0 0
3c 1 0
3b 0 0
3a 1 0
4c 0 0
4b 0 0
4a 0 0
5c 0 0
5b 0 0
这是我目前的SQL:
select ks2en as 'KS2',
count(case result when '' then 1 end) as 'No Result',
count(case result when 'A*' then 1 end) as 'A*'
from student join subject
on subject.upn=student.upn
where name='English'
group by ks2en
order by
case when ks2en = 'W' Then 0 Else 1 End,
left(ks2en, 1),
right(ks2en, 1) desc
答案 0 :(得分:2)
Coalesce假定为空,而不是空白。只是案例陈述而不是
case when Ks2en = '' then 'No KS2' else ks2en end as 'KS2'
答案 1 :(得分:1)
如果只有空格。
select case when LEN(RTRIM(Ks2en)) = 0 then 'No KS2' else 'KS2' end