【发布时间】:2013-08-01 10:58:22
【问题描述】:
我有一个案例陈述,例如下面的案例陈述,它有多个结果。不幸的是,由于前三个结果得到满足,其他选项被忽略了。有没有考虑到所有结果的陈述方式?
,CASE WHEN T.T1_HoNOSCA_Score IS NULL THEN 'Missing T1'
WHEN T.T2_HoNOSCA_Score IS NULL THEN 'Missing T2'
WHEN T.T1HonosValidity IN ('NULL','Invalid 9','Invalid Null')
OR T.T2_HonosValidity IN ('NULL','Invalid 9','Invalid Null') THEN 'Invalid Data'
WHEN T.T1_HoNOSCA_Score IS NULL AND T.T2_HoNOSCA_Score IS NULL THEN 'Missing T1 & T2'
WHEN T.T1_HoNOSCA_Score IS NULL AND T.T1HonosValidity IN ('NULL','Invalid 9','Invalid `enter code here`Null')
OR T.T2_HonosValidity IN ('NULL','Invalid 9','Invalid Null') THEN 'Missing T1 & Invalid Data'
WHEN T.T2_HoNOSCA_Score IS NULL AND T.T1HonosValidity IN ('NULL','Invalid 9','Invalid Null')
OR T.T2_HonosValidity IN ('NULL','Invalid 9','Invalid Null') THEN 'Missing T2 & Invalid Data'
WHEN T.T1_HoNOSCA_Score IS NULL AND T.T2_HoNOSCA_Score IS NULL AND T.T1HonosValidity IN ('NULL','Invalid 9','Invalid Null')
OR T.T2_HonosValidity IN ('NULL','Invalid 9','Invalid Null') THEN 'Missing T1 & T2 & Invalid Data'
ELSE NULL END AS Data_Quality_Type
【问题讨论】:
-
请添加示例数据和预期输出。
-
更改
when..then子句的顺序,让更复杂的子句先出现。 -
只要第一个 CASE 满足,其他的甚至都不检查。请记住这一点并重新设计您的查询。更改子句的顺序 - 或 - 在 CASE 中使用 CASE。