tsql – SQL – CASE STATEMENT – WHEN语句AND语句

发布时间:2019-03-09 整理:脚本之家 作者:未知
脚本之家收集整理的这篇文章主要介绍了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的一部分。

总结

以上是脚本之家为你收集整理的tsql – SQL – CASE STATEMENT – WHEN语句AND语句全部内容,希望文章能够帮你解决tsql – SQL – CASE STATEMENT – WHEN语句AND语句所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

标签:case