我有一个CASE语句,我正在处理它。大多数值都是正确的。如果值为null,则会替换该值,但很少有几个值没有被捕获,但是如果我使用ISNULL(x,'y'(,则其他值不会被捕获,但以前没有捕获的值会被捕获。这个案子很长,所以我把它浓缩在这里。
捕获最多的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值,当然这似乎是不可能的。谢谢你的意见。
将这两种方法结合起来,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