繁体   English   中英

SQL在case语句中替换空白值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM