oracle条件里不能为空表达式,Oracle中条件表达式用法解析

Oracle中条件表达式(if-else if-else)有两种表达方法:

1.–CASE 表达式:SQL99的语法,类似Basic,比较繁琐

2.–DECODE 函数:Oracle自己的语法,类似Java,比较简单

CASE的用法:

3iy2e2.png

例如:oracle中 emp员工表:

SQL> select ename,job,sal 涨前,

2 case job when 'PRESIDENT' then sal+1000

3 when 'MANAGER' then sal+800

4 else sal+400

5 end 涨后

6 from emp;

结果展示:

ENAME JOB 涨前 涨后

---------- --------- ---------- ----------

SMITH CLERK 800 1200

ALLEN SALESMAN 1600 2000

WARD SALESMAN 1250 1650

JONES MANAGER 2975 3775

MARTIN SALESMAN 1250 1650

BLAKE MANAGER 2850 3650

CLARK MANAGER 2450 3250

SCOTT ANALYST 3000 3400

KING PRESIDENT 5000 6000

TURNER SALESMAN 1500 1900

ADAMS CLERK 1100 1500

ENAME JOB 涨前 涨后

---------- --------- ---------- ----------

JAMES CLERK 950 1350

FORD ANALYST 3000 3400

MILLER CLERK 1300 1700

已选择 14 行。

DECODE用法:

bA36Nn.png

例如:依然使用oracle中表格的数据:

SQL> select ename,job,sal 涨前,

2 decode(job,'PRESIDENT',sal+1000,

3 'MANAGER',sal+800,

4 sal+400) 涨后

5 from emp;

结果展示:

ENAME JOB 涨前 涨后

---------- --------- ---------- ----------

SMITH CLERK 800 1200

ALLEN SALESMAN 1600 2000

WARD SALESMAN 1250 1650

JONES MANAGER 2975 3775

MARTIN SALESMAN 1250 1650

BLAKE MANAGER 2850 3650

CLARK MANAGER 2450 3250

SCOTT ANALYST 3000 3400

KING PRESIDENT 5000 6000

TURNER SALESMAN 1500 1900

ADAMS CLERK 1100 1500

ENAME JOB 涨前 涨后

---------- --------- ---------- ----------

JAMES CLERK 950 1350

FORD ANALYST 3000 3400

MILLER CLERK 1300 1700

已选择 14 行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值