Oracle COALESC()E函式
阿新 • • 發佈:2019-01-26
Oracle COALESCE函式語法為COALESCE(表示式1,表示式2,...,表示式n),n>=2,此表示式的功能為返回第一個不為空的表示式,如果都為空則返回空值。
注意:所有表示式必須為同一型別或者能轉換成同一型別。
示例一:在emp表中給comm列為空的人員設為200
- SQL> select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a;
- EMPNO ENAME COMM NEW_COMM
-
---------- -------------------- ---------- ----------
- 7369 SMITH 200
- 7499 ALLEN 300 300
- 7521 WARD 500 500
- 7566 JONES 200
- 7654 MARTIN 1400 1400
-
7698 BLAKE 200
- 7782 CLARK 200
- 7788 SCOTT 200
- 7839 KING 200
- 7844 TURNER 0 0
- 7876 ADAMS 200
-
EMPNO ENAME COMM NEW_COMM
- ---------- -------------------- ---------- ----------
- 7900 JAMES 200
- 7902 FORD 200
- 7934 MILLER 200
- 8888 xiangyc 888.88 888.88
- 已選擇15行。
示例2:模擬返回第一個不為空的值
- SQL> selectcoalesce(null,3+5,4+6) value from dual;
- VALUE
- ----------
- 8
示例3:模擬資料型別不一致的情況
- SQL> selectCOALESCE (null,333,444,'555') from dual;
- selectCOALESCE (null,333,444,'555') from dual
- *
- 第 1 行出現錯誤:
- ORA-00932: 資料型別不一致: 應為 NUMBER, 但卻獲得 CHAR
Oracle COALESCE函式語法為COALESCE(表示式1,表示式2,...,表示式n),n>=2,此表示式的功能為返回第一個不為空的表示式,如果都為空則返回空值。
注意:所有表示式必須為同一型別或者能轉換成同一型別。
示例一:在emp表中給comm列為空的人員設為200
- SQL> select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a;
- EMPNO ENAME COMM NEW_COMM
- ---------- -------------------- ---------- ----------
- 7369 SMITH 200
- 7499 ALLEN 300 300
- 7521 WARD 500 500
- 7566 JONES 200
- 7654 MARTIN 1400 1400
- 7698 BLAKE 200
- 7782 CLARK 200
- 7788 SCOTT 200
- 7839 KING 200
- 7844 TURNER 0 0
- 7876 ADAMS 200
- EMPNO ENAME COMM NEW_COMM
- ---------- -------------------- ---------- ----------
- 7900 JAMES 200
- 7902 FORD 200
- 7934 MILLER 200
- 8888 xiangyc 888.88 888.88
- 已選擇15行。
示例2:模擬返回第一個不為空的值
- SQL> selectcoalesce(null,3+5,4+6) value from dual;
- VALUE
- ----------
- 8
示例3:模擬資料型別不一致的情況
- SQL> selectCOALESCE (null,333,444,'555') from dual;
- selectCOALESCE (null,333,444,'555') from dual
- *
- 第 1 行出現錯誤:
- ORA-00932: 資料型別不一致: 應為 NUMBER, 但卻獲得 CHAR