瞌睡中的葡萄虎

博客园 首页 新随笔 联系 订阅 管理

语法: COALESCE(T v1, T v2, …)
返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL

以emp表为例:

desc emp;

empno                   int                     None                
ename                   string                  None                
job                     string                  None                
mgr                     int                     None                
hiredate                string                  None                
sal                     double                  None                
comm                    double                  None                
deptno                  int                     None                

 

select * from emp;

7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20
7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  NULL    30
7782    CLARK   MANAGER 7839    1981-6-9        2450.0  NULL    10
7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  NULL    20
7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  NULL    10
7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
7876    ADAMS   CLERK   7788    1987-5-23       1100.0  NULL    20
7900    JAMES   CLERK   7698    1981-12-3       950.0   NULL    30
7902    FORD    ANALYST 7566    1981-12-3       3000.0  NULL    20
7934    MILLER  CLERK   7782    1982-1-23       1300.0  NULL    10

comm字段有空值(NULL)

select empno,ename,job,mgr,hiredate,sal, COALESCE(comm, 0),deptno from emp;

7369    SMITH   CLERK   7902    1980-12-17      800.0   0.0     20
7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
7566    JONES   MANAGER 7839    1981-4-2        2975.0  0.0     20
7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  0.0     30
7782    CLARK   MANAGER 7839    1981-6-9        2450.0  0.0     10
7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  0.0     20
7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  0.0     10
7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
7876    ADAMS   CLERK   7788    1987-5-23       1100.0  0.0     20
7900    JAMES   CLERK   7698    1981-12-3       950.0   0.0     30
7902    FORD    ANALYST 7566    1981-12-3       3000.0  0.0     20
7934    MILLER  CLERK   7782    1982-1-23       1300.0  0.0     10

 

注意观察comm字段的值。

 

posted on 2014-10-10 10:46  瞌睡中的葡萄虎  阅读(39394)  评论(0编辑  收藏  举报