oracle中case when使用
阿新 • • 發佈:2018-05-19
turn ase AR oracl weight war mar spa ner
case...when 條件轉換函數 case when有兩種表現形式 1 case 變量 when 值1 then 結果1 when 值2 then 結果2 else ‘其它‘ end --else可以選擇不要 示例: select ename,job,( case job when ‘MANAGER‘ then job when‘CLERK‘ then job end) from emp; 2 case when 表達式1 then 結果1 when 表達式2 then 結果2 else ‘其它‘ end 示例: select ename,sal, case when deptno=10 then ‘會計部‘ when deptno=20 then ‘研究部‘ whendeptno=30 then ‘銷售部‘ else ‘其它部門‘ end from emp; --在case when中當前面條件篩選過後,後面是從前面剩下的數據中再抽取。 --以scott用戶下面emp表為例。 --在進行第二中方法時需要考慮到順序。 SQL> select t.*,case when t.sal>=3000 then ‘[3000‘ 2 when t.sal<3000 and t.sal>=2500 then ‘[2500-3000‘ 3 when t.sal<2500 and t.sal>=1500 then ‘[1500-2500‘ 4 else ‘<1500‘ end as sal_level 5 ,case when t.sal>=3000 then ‘[3000‘ 6 when t.sal>=2500 then ‘[2500-3000‘ 7 when t.sal>=1500 then ‘[1500-2500‘ 8 else ‘<1500‘ end as sal_level_test 9 from emp t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SAL_LEVEL SAL_LEVEL_TEST ----- ---------- --------- ----- ----------- --------- --------- ------ ---------- -------------- 7369 SMITH CLERK 7902 1980/12/17 800.00 20 <1500 <1500 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 [1500-2500 [1500-2500 7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30 <1500 <1500 7566 JONES MANAGER 7839 1981/4/2 2975.00 20 [2500-3000 [2500-3000 7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 <1500 <1500 7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 [2500-3000 [2500-3000 7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 [1500-2500 [1500-2500 7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 [3000 [3000 7839 KING PRESIDENT 1981/11/17 5000.00 10 [3000 [3000 7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 [1500-2500 [1500-2500 7876 ADAMS CLERK 7788 1987/5/23 1100.00 20 <1500 <1500 7900 JAMES CLERK 7698 1981/12/3 950.00 30 <1500 <1500 7902 FORD ANALYST 7566 1981/12/3 3000.00 20 [3000 [3000 7934 MILLER CLERK 7782 1982/1/23 1300.00 10 <1500 <1500
oracle中case when使用