單行函式分類:
1.數值函式:
2.字元函式
3.日期函式
4.轉換函式
5.通用函式
1.abs:絕對值 abs(-1.2) = 1.2
2.ceil:刪除小數點,向上取整 ceil(4.3) = 5
3.floor:刪除小數點,向下取整 floor(4.3) = 4
4.power:指數函式 power(4,3) = 64
5.rand:生產0~1的隨機數 rand() = ?
6.round:四捨五入,指定保留的小數字 round(2.2345,2) = 2.23
7.sqrt:平方根,不能是負數 sqrt(64) = 8
8.trunc:按指定小數字裁剪,沒有四捨五入 trunc(12.2356,3) = 12.235
9.mod:求餘數 mod(25,8) = 1
1.大小寫轉換
1.1 upper 全部大寫
1.2 lower 全部小寫
1.3 initcap 首字母大寫
2.處理函式
2.1 concat 連線字串
2.2 substr 擷取字串
2.3 length 字串長度
2.4 instr 判定字串釋放會出現在被查詢的字串中,並返回首次出現的位置 instr('abcd','c') = 3
2.4.1 instr('原字串' , '匹配字串' , 從第幾個位置開始匹配 , 第幾個以及匹配上的) instr('abcabcabc','abc',-2,2) = 4 從右邊開始第二個字元開始匹配,匹配上的第二個的開始位置的4
2.5 lpad 從左邊開始,返回指定長度的字串,不夠長度就使用字段字串填充 lpad('123',5,'*') = '**123' / lpad('12345',2) = 12
2.6 rpad 從右邊開始返回指定長度字串,不夠就使用指定字串進行填充
2.7 trim 刪除字串或者數字的頭部/尾部的給定字串 trim('*' from '***123***') = '123' / 預設去掉兩邊空格
2.7.1 可以指定去掉左邊的字串 trim(leading '*' rfom '**123***') = '123***'
2.7.2 可以指定去掉右邊的字串 trim(trailing '*' from '***123***') = '***123'
2.7.3 可以指定去掉兩邊的字串 trim(both '*' from '***123***') = '123'
2.8 ltrim / rtrim 類似trim,只是左邊右邊 ltrim('***123***','*') = '123***'
2.9replace 替換 replace('***123***','123','abc') = '***abc***'
3.0 substr 擷取指定長度的字串,注意不同規則
3.0.1 substr('***123***',3,5) = '123**' 從第三個位置開始擷取5個字元
3.0.2 substr('***123***,5') = '23***' 指從第(5-1) 個位置擷取後邊的所有
3.0.3 substr('***123***',-5,3) = '23*' 從右邊往左數,第5個開始擷取3個字元
3.0.4 substr('***123***,-4') = '3***' 從右邊開始擷取4個字元
1.sysdate : 獲取當前系統時間
2.months_between : 得到兩個日期之間的月份
3.add_months : 增加月份數
4.next_day : 返回下個指定星期的準確日期
5.last_day : 當月最後一天
6.round : 對日期進行四捨五入
7.trunc : 對日期進行擷取
示例:1.
select to_char(sysdate , 『cc ww w d ddd yyyy/mm/dd year month day』) from dual;
結果: 21 02 2 3 014 2020/01/14 twenty twenty 1月 星期二
解釋:cc : 世紀
ww : 一年中的周
w : 乙個月的周
d : 星期幾
ddd : 一年中的第幾天
yyyy/mm/dd : 年月日
year : 年
month : 月
day : 日
2.返回當天星期幾
select to_char(sysdate,『day』) from dual;
結果: 星期二
3.返回月份差
select months_between(『20-1月 -20』,『15-3月 -19』) from dual;
結果:10.1612903225806
4.返回指定下個星期幾的日期
select next_day(sysdate,『星期二』) from dual;
結果:2020/1/21 10:03:59
5.當月最後一天
select last_day(sysdate) from dual;
結果:2020/1/31 10:04:53
主要有三:
to_char
to_number
to_date
1.to_char
轉成指定格式日期
select to_char(sysdate,『yyyy-mm-dd hh12:mi:ss』) from dual;
結果: 2020-01-14 10:11:25
加上fm可以去掉01月前面的0
select to_char(sysdate,『fmyyyy-mm-dd hh12:mi:ss』) from dual;
結果:2020-1-14 10:11:44
數值轉換字串
select to_char(12345678.900 , 『l99,999,999.9999』) from dual;
結果:¥12,345,678.9000
解釋:(『l99,999,999.9999』 )
l:代表強制使用當地貨幣符號
$:顯示美元符號
9:代表乙個數字
0:強迫顯示0
.:顯示乙個小數點
,:顯示乙個千分位分隔符
2.to_number
把字串轉數值型
select to_number(』$123,122.34』,』$000,000.0000』) from dual;
結果:123122.34
將十進位制數值轉成十六進製制數值
select to_number(12345,『******』) from dual;
結果:74565
3.to_date
select to_date(『20190101』,『yyyy-mm-dd』) from dual;
結果:2019/1/1
1.decode (value,if1,then1,if2,then2,if3,then3,…,else)
select decode(5,『5』,』[0-5]』,『10』,』[6-10]』,』[~]』) from dual;
結果:[0-5]
2.greatest(n1,n2…)返回序列中最大值
select greatest(1,2,3,6,8,1,2,9) from dual;
結果:9
3.least(n1,n2…)返回序列中最小值
select least(1,2,3,4,5,6,2,1,2) from dual;
結果;1
4.nullif(c1,c2) 如果c1=c2 返回null,否則返回c1
select nullif(『4』,『4』) from dual;
結果: 『4』
5.nvl(c1,c2) 如果c1=null則返回c2,否則返回c1
select nvl(』』,『3』) from dual;
結果:『3』
6.nvl2(c1,c2,c3) 如果c1不為null則返回c2,否則返回c3
select nvl2(』』,『a』,『b』) from dual;
結果:b
7.chr()返回字符集對應的字元
select chr(97) from dual;
結果:a
8.concat(c1,c2)連線字串 , 等同於 ||
select concat(1,『3』) from dual;
select 1 || 『3』 from dual;
結果: 都是 『13』
9.initcap() 將第乙個字母大寫,其餘小寫
select initcap(『abc』) from dual;
結果: abc
10.nls_initcap() 等同於 initcap()
select nls_initcap(『abc』) from dual;
結果:abc
11.ascii() 把字元轉換數字 , 和chr()相反
select ascii(『a』) from dual;
結果:a
12.dbtimezone 返回資料庫當前時區
select dbtimezone from dual;
結果: +00:00
Oracle內建函式
1.數值函式 floor n 小於等於數值n的最大整數 2.5 2 mod m,n m除以n的餘數 2 7 2 power m,n m的n次方 2 3 8 round n,m 將n四捨五入,保留小數點後m位 3.4 3 sign n n 0返回0,n 0返回1,n 0返回 1 8 1 sqrt n ...
oracle 內建函式
單行函式 查詢表檢視時每行返回乙個結果 集合函式 多行記錄返回乙個結果 取絕對值,如果引數可以隱式轉化為數值也能使用 select abs 100 abs 100 from dual 取餘select mod 10,3 mod 10 3 from dual 符號函式,大於0返回1 否則0 selec...
常用內建函式
print bytes 你好 encoding utf 8 print bytes 你好 encoding utf 8 decode 解碼 print bytes 你好 encoding gbk 輸出 b xe4 xbd xa0 xe5 xa5 xbd 你好b xc4 xe3 xba xc3 pri...