[英]SQL Replace blank value in case statement
我有两个表:
学生(ks2en,ks2ma,ks2av)
主题(名称)
我有以下条件语句,该语句根据主题列出了学生列中的值。 然后将这些按其各自的学生列进行分组。
我想以任何组合将结果集中的''空白值替换为'No KS2'。
这是我的案例陈述,它根据主题表中的主题名称有条件地从学生表中选择适当的列。
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”,以便在上述结果集中显示为一组值之一。
关于什么:
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
因为它们没有用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.