SQL case语句逻辑问题

时间:2014-04-02 09:25:16

标签: sql sql-server sql-server-2008 logic case

我写了以下案例陈述,列出了特定主题的结果清单。

SELECT upn,
       Min(CASE name
             WHEN 'English' THEN
               CASE
                 WHEN result IS NULL THEN 'U'
                 ELSE result
               END
           END) English
FROM   subject
GROUP  BY upn 

如果结果为NULL,我想用U替换它带来结果,但上面的内容并没有取代NULLS。如果我删除ELSE result部分,它会起作用,但这显然会显示NULLS和我们。我的逻辑并不完全正确。谁能发现什么是错的?

1 个答案:

答案 0 :(得分:2)

试试这个

SELECT upn,
       Min(CASE name
             WHEN 'English' THEN
               CASE
                 WHEN result IS NULL THEN 'U'
                 ELSE result
               END
            ELSE 'U'
           END) English
FROM   subject
GROUP  BY upn