Oracle 常見函式用法

2021-08-15 09:08:35 字數 2296 閱讀 2770

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...