case when comm is null then 0 else 1 end as is_null
from emp
复制代码
6.5. ENAME SAL COMM IS_NULL
SMITH 800 0
ALLEN 1600 300 1
WARD 1250 500 1
JONES 2975 0
MARTIN 1250 1400 1
BLAKE 2850 0
CLARK 2450 0
SCOTT 3000 0
KING 5000 0
TURNER 1500 0 1
ADAMS 1100 0
JAMES 950 0
FORD 3000 0
MILLER 1300 0
7. 依据条件逻辑动态调整排序项
7.1. 如果JOB等于SALESMAN,就要按照COMM来排序;否则,按照SAL排序
7.2. sql
select ename,sal,job,comm
from emp
order by case when job = 'SALESMAN' then comm else sal end
复制代码
7.3. sql
select ename,sal,job,comm,
case when job = 'SALESMAN' then comm else sal end as ordered
from emp
order by 5
复制代码
7.4. ENAME SAL JOB COMM ORDERED
TURNER 1500 SALESMAN 0 0
ALLEN 1600 SALESMAN 300 300
WARD 1250 SALESMAN 500 500
SMITH 800 CLERK 800
JAMES 950 CLERK 950
ADAMS 1100 CLERK 1100
MARTIN 1250 SALESMAN 1300 1300
MILLER 1300 CLERK 1300
CLARK 2450 MANAGER 2450
BLAKE 2850 MANAGER 2850
JONES 2975 MANAGER 2975
SCOTT 3000 ANALYST 3000
FORD 3000 ANALYST 3000
KING 5000 PRESIDENT 5000