1.decode函式
select id,name,decode(lever,1,'教授',2,'副教授',3,'導師','講師') position,
(select classnum from class t where t.num = s.num) num from teacher s where t.lever in (1,2,3);
上句sql中的decode函式的用法邏輯是這樣理解的:
if(lever==1) then
return '教授'(翻譯值1)
else if(lever==2) then
return '副教授'(翻譯值2)
else if(lever==3) then
return '導師'
else
return '講師'(預設值)
其中,預設值可有可無
2.nvl函式
select id,personname,nvl(booknum,0) as booknum,nvl(personnum,0) as personnum from bookstore
上句sql的nvl()函式可以這樣理解:
if (booknum !=null) then
return booknum
else
return 0
3.nvl2函式
select id,personname,nvl2(booknum,booknum,0) as booknum,nvl2(personnum,personnum,0) as personnum from bookstore
上句sql的nvl2()函式可以這樣理解
if (booknum !=null) then
return bookname
else if(booknum == null)
return 0
值得注意的是,bookname和0型別不同的話,0會轉換成bookname的型別,轉換不了,則會報錯
4.nullif函式
select e.name,e.job_id,j.job_id,nullif(e.job_id,j.job_id) as same from employees e,job_history j
where e.employee_id = j.employee_id order by name;
上句sql的nullif()函式可以這樣理解
if(e.job_id == j.job_id) then
return null
else
return e.job_id
5.sum函式
select id ,classname,sum(nvl(results,0)) as results,sum(decode(type,'50',0,1)) as classtype from class
上句sql的sum()函式主要是用來求和括號裡表示式返回的值,或表中某個欄位的總和
6.substr函式
select substr(classname,0) as classname ,substr("今天天氣是晴天!",3,2) from class;
上句sql的substr()函式主要是用來擷取字串的一部分的,如substr(classname,0)表示從第0個位元組開始擷取classname字串,substr("今天天氣是晴天",3,2)表示從第三個位元組開始擷取"今天天氣是晴天"中的兩個位元組,結果是"天氣".
7.to_char函式
select s.id,s.name,to_char(s.time,'yyyy-mm-dd hh24:mi:ss'),to_char(s.money,'999') as money
from student s
上句sql的substr()函式主要是將數值型或日期型字段轉換成字元型,方便做類似模糊查詢的操作 oracle 常見函式
upper select upper abcde from dual select from emp where ename upper smith lower select lower abcde from dual initcap 首字母大寫 其他字母小寫 select initcap enam...
Oracle常見函式
一 字元函式 lower char 將字串轉化為小寫。upper char 將字串轉化為大寫。length char 返回字串的長度。注 lengthb char 返回的是位元組的長度,例如 length char lengthb char 用於判斷是不是中文。substr char,m,n 擷取字...
set函式常見用法
標頭檔案 include 優勢 內部自動從小到大排序且不含重複元素。定義方式 set typename name 注意 除開vector和string之外的stl容器都不支援 it i 即it i 的訪問方式 遍歷方式 for set typename iterator it st.begin it...