oracle sql语句中使用if逻辑

l在 SQL 语句中使用IF-THEN-ELSE 逻辑
l
l使用两种方法:
•CASE 表达式:SQL99的语法,类似Basic,比较繁琐
•DECODE 函数:Oracle自己的语法,类似Java,比较简介

 

 

 1 SQL> select ename,job, sal, case job when 'PRESIDENT' then 1.1*sal
 2   2                               when 'MANAGER' then 1.2*sal
 3   3                                when 'CLERK' then 1.3*sal
 4   4                                 else 1.4*sal
 5   5                                end 涨后薪水
 6   6  from emp
 7   7  ;
 8  
 9 ENAME      JOB             SAL       涨后薪水
10 ---------- --------- --------- ----------
11 SMITH      CLERK        800.00       1040
12 ALLEN      SALESMAN    1600.00       2240
13 WARD       SALESMAN    1250.00       1750
14 JONES      MANAGER     2975.00       3570
15 MARTIN     SALESMAN    1250.00       1750
16 BLAKE      MANAGER     2850.00       3420
17 CLARK      MANAGER     2450.00       2940
18 KING       PRESIDENT   5000.00       5500
19 TURNER     SALESMAN    1500.00       2100
20 JAMES      CLERK        950.00       1235
21 FORD       ANALYST     3000.00       4200
22 MILLER     CLERK       1400.00       1820
23 jack_1234              2000.00       2800
24  
25 13 rows selected
26 
27 SQL> select ename,job, sal,decode(job,'PRESIDENT',1.1*sal,
28   2                                   'MANAGER',1.2*sal,
29   3                                   'CLERK',1.3*sal,
30   4                                           1.4*sal)涨后薪水
31   5  from emp;
32  
33 ENAME      JOB             SAL       涨后薪水
34 ---------- --------- --------- ----------
35 SMITH      CLERK        800.00       1040
36 ALLEN      SALESMAN    1600.00       2240
37 WARD       SALESMAN    1250.00       1750
38 JONES      MANAGER     2975.00       3570
39 MARTIN     SALESMAN    1250.00       1750
40 BLAKE      MANAGER     2850.00       3420
41 CLARK      MANAGER     2450.00       2940
42 KING       PRESIDENT   5000.00       5500
43 TURNER     SALESMAN    1500.00       2100
44 JAMES      CLERK        950.00       1235
45 FORD       ANALYST     3000.00       4200
46 MILLER     CLERK       1400.00       1820
47 jack_1234              2000.00       2800
48  
49 13 rows selected

 

转载于:https://www.cnblogs.com/liuwt365/p/4181232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值