我正在尝试构建一个CASE语句来处理下表。
如果Service1为NULL,我希望Service2中的值替换它。如果Service1和Service2为NULL,我希望Service3中的值替换它等等...等等......
我想在每个字段上重复此操作,以便它们尽可能地压缩。
我设法构建一个CASE语句,但是我有重复的值,因为值从Service2移动到Service1但仍保留在Service2中。我需要根据NULL值移动所有值,因此相同的值保留在行上,但它们尽可能在列上进行压缩。
答案 0 :(得分:3)
COALESCE
正是您所寻找的:
SELECT COALESCE(Service1, Service2, Service3, Service4, Service5, Service6)
FROM ...
COALESCE
对于这样的CASE
表达式来说是非常方便的缩写:
COALESCE(Service1, Service2)
CASE WHEN Service1 IS NOT NULL THEN Service1
ELSE Service2
END
如果您有两个以上的参数,COALESCE
非常方便。
还值得查看其他null
相关case
缩写: