tsql – SQL – CASE STATEMENT – WHEN语句AND语句
为了解决以下问题,我遇到了一个问题。
我有一张表,它有一个国家列,其中1个被授权,2个完成,他们是其他一些。 我也有一个零售商表,它有一个零售商处理类型列,其中1是一步,2是两步。 现在看下面的查询… CASE purc.State WHEN 1 THEN '"AUTHORISED"' WHEN 2 THEN '"AUTHORISED"' WHEN 4 THEN '"AUTHORISED"' ELSE '"DECLINED"' END AS Autorised_Decline_Status, 我需要做的是如下: WHATE STATE = 2 AND RetailerProcessType = 1 THEN’“AUTHORIZED”’ WHATE STATE = 1 AND RetailerProcessType = 2 THEN’“PENDING”’ WHATE STATE = 2 AND RetailerProcessType = 2 THEN’“AUTHORIZED”’ ELSE’“DECLINED”’ 我可以看到这样做的唯一方法是在查询周围有一个大量的IF语句,一个用于一步零售商,另一个用于两步,因为我的理解是WHEN子句不能有一个“AND”。 然而,这似乎是可怕的,长久的,任何人都有任何更为清醒的想法? 史蒂芬 解决方法你可以这样做:-- Notice how STATE got moved inside the condition: CASE WHEN STATE = 2 AND RetailerProcessType IN (1,2) THEN '"AUTHORISED"' WHEN STATE = 1 AND RetailerProcessType = 2 THEN '"PENDING"' ELSE '"DECLINED"' END 你可以在这里做一个AND的原因是你没有检查STATE的CASES,而是CASES条件。 这里的关键部分是STATE条件是WHEN的一部分。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |