使用SQL中SELECT语句的使用条件逻辑

来源:互联网 发布:淘宝能用明星同款吗 编辑:程序博客网 时间:2024/05/18 00:27

如果使用CASE表达式直接在SELECT语句中执行条件逻辑,可以解决使用数据库中的一些问题,下面将为您示例分析,供您参考:

问题

    在SELECT语句中对数值进行IF-ELSE操作。例如,要产生一个结果集,如果一个员工的工资小于等于$2000,就返回消息UNDERPAID,如果大于等于$4000,就返回消息OVERPAID,如果在两者之间,就返回OK。结果集应如下所示:

ENAMESALSTATUS------------------------------SMITH800UNDERPAIDALLEN1600UNDERPAIDWARD1250UNDERPAIDJONES2975OKMARTIN1250UNDERPAIDBLAKE2850OKCLARK2450OKSCOTT3000OKKING5000OVERPAIDTURNER1500UNDERPAIDADAMS1100UNDERPAIDJAMES950UNDERPAIDFORD3000OKMILLER1300UNDERPAID

解决方案

    使用CASE表达式直接在SELECT语句中执行条件逻辑。

select ename,sal,    case when sal <= 2000 then 'UNDERPAID'         when sal >= 4000 then 'OVERPAID'         else 'OK'    end as statusfrom emp

讨论

    CASE表达式可以针对返回值执行条件逻辑。可以给CASE表达式取别名,以返回更易读的结果集。在本解决方案中,给CASE表达式取的别名是STATUS。ELSE子句是可选的,如果没有使用ELSE,对于不满足判断条件的行,CASE表达式会返回NULL。

原创粉丝点击