我有一个查询设置,其中包含一个95%的时间工作的CASE语句...其他5%是由于数据不在那里。还有其他数据表明指针有助于......我只知道这是否可行......
所以: 案例PRDE.STATUSCODE当'A'那么'上诉'当''那么'被解雇'当'P'那么'等待'当''那么'满足'当'T'那么'定居'结束作为状态
有时字段是''但是可能会填充一个名为SATISFIEDDATE的文本字段...我可以在这里写一些内容:CASE''THEN [if SATISFIEDDATE<> ''然后'满意']
很抱歉,如果这很简单......:)
答案 0 :(得分:2)
CASE
WHEN PRDE.STATUSCODE='A' THEN 'Appealed'
WHEN PRDE.STATUSCODE='D' THEN 'Dismissed'
WHEN PRDE.STATUSCODE='P' THEN 'Pending'
WHEN PRDE.STATUSCODE='S' OR (PRDE.STATUSCODE='' AND LEN(SatisfiedDate)>0) THEN 'Satisfied'
WHEN PRDE.STATUSCODE='T' THEN 'Settled'
ELSE '?null/unknown?'
END AS STATUS
答案 1 :(得分:1)
你可以有另一个CASE声明:
CASE '' THEN CASE WHEN SatisfiedDate != '' THEN 'Satisfied' END
另一种选择是:
CASE
WHEN PRDE.STATUSCODE = 'A' THEN 'Appealed'
WHEN PRDE.STATUSCODE = 'D' THEN 'Dismissed'
WHEN PRDE.STATUSCODE = 'P' THEN 'Pending'
WHEN PRDE.STATUSCODE = 'S'
OR (PRDE.STATUSCODE = '' AND SatisfiedDate != '') THEN 'Satisfied'
WHEN PRDE.STATUSCODE = 'T' THEN 'Settled'
END AS STATUS
答案 2 :(得分:0)
您可以使用ELSE
ELSE else_result_expression
在else_result_expression中,你可以放置你想要的任何法律表达,包括你写的内容。
答案 3 :(得分:0)
您可以在else子句或when子句
中执行嵌套的case语句CASE PRDE.STATUSCODE
WHEN 'A' THEN 'Appealed'
WHEN 'D' THEN 'Dismissed'
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Satisfied'
WHEN 'T' THEN 'Settled'
else
case
when SATISFIEDDATE is not null then 'Satisfied'
end
END AS STATUS
答案 4 :(得分:0)
也许这就是你要找的东西:
CASE PRDE.STATUSCODE
WHEN 'A' THEN 'Appealed'
WHEN 'D' THEN 'Dismissed'
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Satisfied'
WHEN 'T' THEN 'Settled'
WHEN '' AND NULLIF(PRDE.SATISFIEDDATE, '') IS NOT NULL THEN 'Satisfied' END AS STATUS