oracle相關總結3 常用函式

2021-06-18 08:56:42 字數 3943 閱讀 2933

1、字串函式

length()    字元長度

lentthb()    位元組長度;乙個漢字記憶體中占用 2位元組

ltrim、rtrim、trim

2、截串

substr(表示式,位置,長度)

oracle 無左右取串函式,但可以使用變通方式完成。

左取串:    substr('abcdefg', 1, 3)

右取串:    substr('abcedfg', length('abcdefg')-3+1, 3)

字元函式接受字元輸入,並返回字元或數值。

initcap(char)                               首字母大寫

lower(char)                                 轉換為小寫

upper(char)                                 轉換為大寫

ltrim(char, set)                            左裁切

rtrim(char, set)                            右裁切

translate(char, from, to)                  按字母翻譯

replace(char, search_str, replace_str)    字串替換

instr(char, substr[,pos])                  查詢子串位置

substr(char, pos, len)                      取子字串

concat(char1, char2)                      連線字串

chr(ascii)        根據 ascii 碼返回對應字串

lpad / rpad        左 / 右 填充

lpad ('function', 15 , '=') 返回    '*****==function'

tram            開頭或結尾(或 開頭和結尾)裁剪特定的字元,預設裁剪空格。

trim ([leading | trailing] trim_char)

length(char)        返回字串長度

decode            逐個值進行字串替換

decode (expr, search1, result1, search2, result2, [ ,default])

decode (ostalus, 'p', '準備處理', 'c', '已完成')

3、時間函式

4、轉換函式

to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss')

to_date('20130301,'yyyymmdd hh24:mi:ss')

to_number('333')        必須是能轉換

to_timestamp('2007-10-10 00:00:00.0', 'yyyy-mm-dd hh24:mi:ssxff')    轉換為時間戳格式

5、字元型函式

ascii:獲得字元的ascii碼,如:ascii('a') 65

chr:返回與ascii碼相應的字元,如:chr(65) a

lower:將字串轉換成小寫,如:lower ('sql course') sql course

upper:將字串轉換成大寫,如:upper('sql course') sql course

initcap:將字串轉換成每個單詞以大寫開頭,如:initcap('sql course') sql course

concat:連線兩個字串 concat('sql', ' course') sql course

substr:給出起始位置和長度,返回子字串,如:substr('string',1,3) str

length:求字串的長度 length('wellcom') 7

instr:給出起始位置和出現的次數,求子字串在字串中出現的位置,如:instr('string', 'r',1,1) 3

lpad:用字元填充字串左側到指定長度,如:lpad('hi',10,'-') --------hi

rpad:用字元填充字串右側到指定長度,如:rpad('hi',10,'-') hi--------

trim:在乙個字串中去除另乙個字串,如:trim('s' from 'ssmith') mith

replace:用乙個字串替換另乙個字串中的子字串,如:replace('abc', 'b', 'd') adc

6、日期函式

months_between:返回兩個日期間的

月份,如:months_between ('04-11月-05','11-1月-01'),結果,57.7741935

add_months:返回把月份數加到日期上的新日期,如:add_months('06-2月-03',1),結果,06-3月-03

add_months('06-2月-03',-1),結果,06-1月-03

next_day:返回指定日期後的星期對應的新日期,如:next_day('06-2月-03','星期一'),結果,10-2月-03

last_day:返回指定日期所在的月的最後一天,如:last_day('06-2月-03'),結果,28-2月-03

round:按指定格式對日期進行四捨五入,如:round(to_date('13-2月-03'),'year'),結果,01-1月-03

round(to_date('13-2月-03'),'month'),結果,01-2月-03

round(to_date('13-2月-03'),'day'),結果,16-2月-03

(按周四捨五入)

trunc:對日期按指定方式進行截斷,如:trunc(to_date('06-2月-03'),'year'),結果,01-1月-03

trunc(to_date('06-2月-03'),'month'),結果,01-2月-03

trunc(to_date('06-2月-03'),'day'),結果,02-2月-03

7、其他函式

user:當前使用者

sum(decode(***, '男', 1, 0))    篩選出行被為男的記錄 並加1

sum(decode(***, '女', 1, 0))    篩選出行被為女的記錄 並加1

nvl (exp, exp2)        如果 exp 為空返回 exp2;如果非空返回 exp

nvl2 (exp, exp2, exp3)    如果 exp 為空返回 exp3;如果非空返回 exp2

nullif (exp1, exp2)    比較兩表示式,相等返回空值,不等則返回 exp1

abs:求絕對值函式,如:abs(5) 5

sqrt:求平方根函式,如:sqrt(2) 1.41421356

power:求冪函式,如:power(2,3) 8

cos:求余弦三角函式,如:cos(3.14159) ?1

mod:求除法餘數,如:mod(1600, 300) 100

ceil:求大於等於某數的最小整數,如:ceil(2.35) 3

floor:求小於等於某數的最大整數,如:floor(2.35) 2

round:按指定精度對十進位制數四捨五入,如:round(45.923, 1),結果,45.9

round(45.923, 0),結果,46

round(45.923, 1),結果,50

trunc:按指定精度截斷十進位制數,如:trunc(45.923, 1),結果,45.9

trunc(45.923),結果,45

trunc(45.923, 1),結果, 40

ORACLE常用函式總結

時常忘記,但是用得十分頻繁 nvl nvl exp1,exp2 exp1為null,返回exp2,exp1不為null,返回exp1 主要使用者轉換null值 nullif nullif exp1,exp2 exp1 exp2,返回空,不等返回exp1 coalesce coalesce exp1,...

oracle常用函式總結

目錄 nvl2.1 decode 函式簡介 1 sign 函式.3 oracle 中的union union all intersect minus 3oracle trim 函式.7 oracle trunc 函式的用法 8 lpad 用法.10 oracle translate 詳解 例項.10...

Oracle常用函式總結

1 concat和 concat連線兩個字元,可連線多個字元 select concat a b from dual ab select a b c from dual abc 2 replace 將要更改的字串 被替換掉的字串 替換字串 select replace abc b 1 from du...