用于sql查询的IF、ELSE语句

Posted

技术标签:

【中文标题】用于sql查询的IF、ELSE语句【英文标题】:IF, ELSE statement for sql query 【发布时间】:2015-05-04 21:25:14 【问题描述】:

如何在我有一个名为 ACC_REQUEST 的表的情况下编写 SQL 查询?

表中有一个名为 REQUEST_STATUS 的列,其值为“pending”、“withdrawn”和“completed”

如果请求状态值 = 'pending 则从 ACC_APPROVAL 中选择approver_name,否则选择请求状态

【问题讨论】:

【参考方案1】:

你可以使用 CASE

喜欢:

案例 x 当呸呸呸呸 结束案例

http://dev.mysql.com/doc/refman/5.0/en/case.html

【讨论】:

【参考方案2】:

有点像

SELECT 
    CASE
        WHEN ACC_REQUEST.REQUEST_STATUS = 'pending' THEN ACC_APPROVAL.APPROVER_NAME
        ELSE ACC_REQUEST.REQUEST_STATUS
    END as [put the name you wish for output column here, no square brackets]
FROM ACC_REQUEST
INNER JOIN ACC_APPROVAL ON [I'm assuming some kind of join condition here]

【讨论】:

比我的更好;)

以上是关于用于sql查询的IF、ELSE语句的主要内容,如果未能解决你的问题,请参考以下文章

SQL 语句 UPDATE带嵌套子查询的问题

如果表不存在,如何运行包含针对另一个 sql 实例上的表的查询的 If-Then-Else 语句?

在PHP中使用SQL语句 怎么取出查询出来的最后一个数据?

SQL里if语句和case语句有啥区别吗?哪个使用更高效?就是查询更优化?

在oracle sql语句里有没有if...else...的用法,请各位大侠给个例子看看,灰常感谢!!

oracleif判断语句