使用NVL(a,b)通用函數,統計員工年收入,NVL()作用于任何類型,即(number/varchar2/date)
通用函數:參數類型可以是number或varchar2或date類型
select ename,sal*12+NVL(comm,0) from emp;
使用NVL2(a,b,c)通用函數,如果a不為NULL,取b值,否則取c值,統計員工年收入
select ename,sal*12+NVL2(comm,comm,0) from emp;
使用NULLIF(a,b)通用函數,在類型一致的情況下,如果a與b相同,返回NULL,否則返回a,比較10和10.0是否相同
select NULLIF(10,'10') from dual;
使用SQL99標準通用語法中的case表達式,將職位是分析員的,工資+1000;職位是經理的,工資+800;職位是其它的,工資+400
case 字段
when 條件1 then 表達式1
when 條件2 then 表達式2
else 表達式n
end
課后請參考<MySQL5.X的手冊>-12.2這個章節
select ename "姓名",job "職位",sal "漲前工資", case job when 'ANALYST' then sal+1000 when 'MANAGER' then sal+800 else sal+400 end "漲后工資" from emp;
使用oracle專用語法中的decode()函數,職位是分析員的,工資+1000;職位是經理的,工資+800;職位是其它的,工資+400
decode(字段,條件1,表達式1,條件2,表達式2,...表達式n)
select ename "姓名",job "職位",sal "漲前工資", decode(job,'ANALYST',sal+1000,'MANAGER',sal+800,sal+400) "漲后工資" from emp;
單引號出現的地方如下: 1)字符串,例如:'hello' 2)日期型,例如:'17-12月-80' 3)to_char/to_date(日期,'YYYY-MM-DD HH24:MI:SS') |
雙引號出現的地方如下: 1)列別名,例如:select ename "姓 名" from emp 2)to_char/to_date(日期,'YYYY"年"MM"月"DD"日" HH24:MI:SS')‘’號中的英文字符大小寫不敏感 |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。