1. 程式人生 > >Oracle COALESC()E函式

Oracle COALESC()E函式



Oracle COALESCE函式語法為COALESCE(表示式1,表示式2,...,表示式n),n>=2,此表示式的功能為返回第一個不為空的表示式,如果都為空則返回空值。

注意:所有表示式必須為同一型別或者能轉換成同一型別。

示例一:在emp表中給comm列為空的人員設為200

  1. SQL> select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a;  
  2.      EMPNO ENAME                      COMM   NEW_COMM  
  3. ---------- -------------------- ---------- ----------
  4.       7369 SMITH                                  200  
  5.       7499 ALLEN                       300        300  
  6.       7521 WARD                        500        500  
  7.       7566 JONES                                  200  
  8.       7654 MARTIN                     1400       1400  
  9.       7698 BLAKE                                  200  
  10.       7782 CLARK                                  200  
  11.       7788 SCOTT                                  200  
  12.       7839 KING                                   200  
  13.       7844 TURNER                        0          0  
  14.       7876 ADAMS                                  200  
  15.      EMPNO ENAME                      COMM   NEW_COMM  
  16. ---------- -------------------- ---------- ----------
  17.       7900 JAMES                                  200  
  18.       7902 FORD                                   200  
  19.       7934 MILLER                                 200  
  20.       8888 xiangyc                  888.88     888.88  
  21. 已選擇15行。  

示例2:模擬返回第一個不為空的值
  1. SQL> selectcoalesce(null,3+5,4+6) value from dual;  
  2.      VALUE  
  3. ----------
  4.          8  

示例3:模擬資料型別不一致的情況
  1. SQL> selectCOALESCE (null,333,444,'555'from dual;  
  2. selectCOALESCE (null,333,444,'555'from dual  
  3.                               *  
  4. 第 1 行出現錯誤:  
  5. ORA-00932: 資料型別不一致: 應為 NUMBER, 但卻獲得 CHAR

Oracle COALESCE函式語法為COALESCE(表示式1,表示式2,...,表示式n),n>=2,此表示式的功能為返回第一個不為空的表示式,如果都為空則返回空值。

注意:所有表示式必須為同一型別或者能轉換成同一型別。

示例一:在emp表中給comm列為空的人員設為200

  1. SQL> select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a;  
  2.      EMPNO ENAME                      COMM   NEW_COMM  
  3. ---------- -------------------- ---------- ----------
  4.       7369 SMITH                                  200  
  5.       7499 ALLEN                       300        300  
  6.       7521 WARD                        500        500  
  7.       7566 JONES                                  200  
  8.       7654 MARTIN                     1400       1400  
  9.       7698 BLAKE                                  200  
  10.       7782 CLARK                                  200  
  11.       7788 SCOTT                                  200  
  12.       7839 KING                                   200  
  13.       7844 TURNER                        0          0  
  14.       7876 ADAMS                                  200  
  15.      EMPNO ENAME                      COMM   NEW_COMM  
  16. ---------- -------------------- ---------- ----------
  17.       7900 JAMES                                  200  
  18.       7902 FORD                                   200  
  19.       7934 MILLER                                 200  
  20.       8888 xiangyc                  888.88     888.88  
  21. 已選擇15行。  

示例2:模擬返回第一個不為空的值
  1. SQL> selectcoalesce(null,3+5,4+6) value from dual;  
  2.      VALUE  
  3. ----------
  4.          8  

示例3:模擬資料型別不一致的情況
  1. SQL> selectCOALESCE (null,333,444,'555'from dual;  
  2. selectCOALESCE (null,333,444,'555'from dual  
  3.                               *  
  4. 第 1 行出現錯誤:  
  5. ORA-00932: 資料型別不一致: 應為 NUMBER, 但卻獲得 CHAR