我有两张桌子:
学生(ks2en,ks2ma,ks2av)
主题(姓名)
我有以下条件语句,根据主题列出学生列中的值。然后根据各自的学生专栏对这些进行分组。
在任何组合中,我都想用'No KS2'替换结果集中的''空白值。
这是我的case语句,它有条件地从学生表中选择主题表中主题名称的相应列。
CASE
WHEN COALESCE(Name, '') = 'English' THEN
[Ks2en]
WHEN COALESCE(Name, '') = 'Mathematics' THEN
[Ks2ma]
ELSE
[Ks2av]
END AS KS2
示例数据:
ks2en
2a
2a
3a
4c
5a
3a
2a
1c
当主题名称为“英语”时,将显示以下结果:
KS2
No KS2
1c
2a
3a
4c
5a
为了清楚起见,不要担心语句的排序,分组或条件元素,因为我已经完成了这些工作。它只是用'No KS2'替换空白值,以便它显示为上述结果集中的一组值。
答案 0 :(得分:2)
怎么样:
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en]=NULL OR [Ks2en]='' THEN
'No KS2'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma]=NULL OR [Ks2ma]='' THEN
'No KS2'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av]=NULL OR [Ks2av]='' THEN
'No KS2'
ELSE
[Ks2av]
END
END AS KS2
删除内部COALESCE
,因为它们没用!