下面的case语句应该是每当CL.TYPE = DIAG.TYPE时检索数据然后DIAG.TYPE为真,如果不是则为NULL。这有意义吗?或者这是最合乎逻辑的方式吗?
(CASE
WHEN CL.TYPE2 = DIAG.TYPE
OR CL.TYPE3 = DIAG.TYPE
OR CL.TYPE4 = DIAG.TYPE
OR CL.TYPE5 = DIAG.TYPE
OR CL.TYPE6 = DIAG.TYPE
OR CL.TYPE7 = DIAG.TYPE
OR CL.TYPE8 = DIAG.TYPE THEN SUBSTRING(DIAG.TYPE,2,1)
ELSE NULL
END)
答案 0 :(得分:4)
您的查询似乎很好,您可以使用in
来减少OR
次重复,以使您的查询更具可读性:
(CASE
WHEN DIAG.TYPE in (CL.TYPE2, CL.TYPE3, CL.TYPE4, CL.TYPE5, CL.TYPE6, CL.TYPE7, CL.TYPE8)
THEN SUBSTRING(DIAG.TYPE,2,1)
ELSE NULL
END)