0

我有两张桌子:

学生(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

当主题名称为“English”时,将显示以下结果:

KS2
No KS2
1c
2a
3a
4c
5a

为了清楚起见,不要担心语句的排序、分组或条件元素,因为我已经让这些都工作了。它只是用“No KS2”替换空白值,以便它显示为上述结果集中的一组值。

4

1 回答 1

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,因为它们没有用!

于 2013-10-02T15:20:46.757 回答