SQL替换GROUP BY结果中的空白结果值

时间:2013-09-20 22:04:19

标签: sql group-by string

我有一个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

2 个答案:

答案 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