我有一个CASE声明,我正在为此而苦苦挣扎。大多数值都正确传递。如果该值为null则替换该值,但是很少捕获到该值,但是如果我使用ISNULL(x,'y'),则不会捕获其他值,但是之前未捕获到的值是。 CASE很长,所以我在这里将其压缩。
捕获大多数NULL值:
CASE
WHEN a.LANGUAGE2 = 'ABC' THEN '0170'
WHEN a.LANGUAGE2 = 'BCD' THEN '0440'
WHEN a.LANGUAGE2 IS NULL THEN
CASE
WHEN b.LANGUAGE1 = 'ABC' THEN '0170'
WHEN b.LANGUAGE1 = 'BCD' THEN '0440'
END
END
抓住其他人
ISNULL(a.LANGUAGE2,b.LANGUAGE1)
几乎有两种NULL值,这当然是不可能的。谢谢您的任何想法。
答案 0 :(得分:1)
结合这两种方法,case语句变为
CASE
WHEN ISNULL(a.LANGUAGE2,b.LANGUAGE1) = 'ABC' THEN '0170'
WHEN ISNULL(a.LANGUAGE2,b.LANGUAGE1) = 'BCD' THEN '0440'
ELSE "WHAT DO YOU WANT IF LANGUAGE1 IS ALSO NULL"
END