函數code |
功能blog |
NVL(x,value)ip |
若是x爲空,返回value,不然返回xget |
NVL2(x,value1,value2)table |
若是x非空,返回value1,不然返回value2基礎 |
下面將結合實例對這兩個函數進行介紹。im
l NVL(x,value)img
若是x爲空,返回value,不然返回x。tab
示例1:對工資SAL是1500元如下的員工,若是沒有發獎金,每人獎金200元。
SQL> SELECT ENAME,JOB,SAL,COMM,NVL(COMM,200) FROM EMP WHERE SAL<1500;
ENAME JOB SAL COMM NVL(COMM,200) ---------- --------- ---------- ---------- ------------- SMITH CLERK 800 200 WARD SALESMAN 1250 500 500 MARTIN SALESMAN 1250 1400 1400 ADAMS CLERK 1100 200 JAMES CLERK 950 200 MILLER CLERK 1300 200
已選擇6行。 |
l NVL2(x,value1,value2)
若是x非空,返回value1,不然返回value2。
示例2:對EMP表中工資爲1500元如下的員工,若是沒有獎金,則獎金爲200元,若是有獎金,則在原來的獎金基礎上加100元。
SQL> SELECT ENAME,JOB,SAL,COMM,NVL2(COMM,200,100) FROM EMP WHERE SAL<1500;
ENAME JOB SAL COMM NVL2(COMM,200,100) ---------- --------- ---------- ---------- ------------------ SMITH CLERK 800 100 WARD SALESMAN 1250 500 200 MARTIN SALESMAN 1250 1400 200 ADAMS CLERK 1100 100 JAMES CLERK 950 100 MILLER CLERK 1300 100
已選擇6行。 |