IT技术网www.itjs.cn

当前位置:首页 > 数据库 > MySQL > 使用SQL中SELECT语句的使用条件逻辑

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

发布时间:2010-09-03 14:56 来源:未知

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

问题

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

ENAME SAL STATUS
---------- ---------- ----------
SMITH 800 UNDERPAID
ALLEN 1600 UNDERPAID
WARD 1250 UNDERPAID
JONES 2975 OK
MARTIN 1250 UNDERPAID
BLAKE 2850 OK
CLARK 2450 OK
SCOTT 3000 OK
KING 5000 OVERPAID
TURNER 1500 UNDERPAID
ADAMS 1100 UNDERPAID
JAMES 950 UNDERPAID
FORD 3000 OK
MILLER 1300 UNDERPAID

解决方案

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

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

讨论

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