標籤:oracle 資料庫 字元函數 數學函數
在oracle的開發和使用中,經常需要用到各種各樣的函數,這一章歸納下簡單的字串、數學函數,以後需要用起來也方便點,也能讓有緣的同學少走一點彎路。
--常用字元相關函數
1、substr字串截取
substr(字串,截取開始位置,截取長度)
select substr(‘abcdef‘,1,3) from dual
截取開始位置,0和1都是表示截取的開始位置為第一個字元;
2、 instr尋找子串位置
select instr(‘abcfdgfdhd‘,‘fd‘)from dual
返回第一個子串的位置。
3、||字串串連
select ‘hello‘||‘, world‘ fromdual;
4、trim對字串兩邊的處理
trim一般都是用在刪除字串兩邊的空格,也可以用來刪除字串兩邊的指定字元。trim指定刪除的字串只能是單個字元。
1. trim()刪除字串兩邊的半形空格。
2. ltrim()刪除字串左邊的半形空格。
3. rtrim()刪除字串右邊的半形空格。
4. trim(‘字元1‘ from ‘字串2‘) 分別從字元2串的兩邊開始,刪除指定的字元1。
5. trim([leading | trailing | both] trim_char from string) 從字串String中刪除指定的字元trim_char。
leading:從字串的頭開始刪除。
trailing:從字串的尾部開始刪除。
both:從字串的兩邊刪除。
select trim(‘ ffm ‘) as name from dual;
select ltrim(‘ ffm ‘) as name from dual;
select rtrim(‘ ffm ‘) as name from dual;
select trim(leading ‘f‘ from ‘ffmmff‘) from dual ;
select trim(trailing ‘f‘ from‘ffmmff‘) from dual ;
select trim(both ‘f‘ from ‘ffmmff‘)from dual ;
5、 ascii返回字串首字母的Ascii值
select ascii(‘a‘) from dual
6、chr返回ascii值對應的字母
select chr(97) from dual
7、length計算字串長度
select length(‘ffm‘) from dual
8、initcap(首字母變大寫) ,lower(變小寫),upper(變大寫)
select lower(‘fFM‘),upper(‘fFM‘),initcap(‘fFM‘) from dual;
9,Replace 替換字元
replace(‘將要更改的字串‘,‘被替換掉的字串‘,‘替換字串‘)
select replace(‘ffm‘,‘m‘,‘1983‘)from dual;
10、translate替換指定字串
TRANSLATE(string,from_str,to_str)
TRANSLATE 是 REPLACE所提供的功能的一個超集。返回將(所有出現的)from_str中的每個字元替換為to_str中的相應字元以後的string。如果 from_str 比 to_str長,那麼在 from_str中而不在 to_str中的額外字元將從 string中被刪除,因為它們沒有相應的替換字元。to_str不可為空。
select translate(‘ffm‘,‘m‘,‘1983‘) from dual;
返回結果為:ff1
11、lpad [左添充] rpad [右填充](用於控制輸出格式)
select lpad(‘ffm‘,8,‘=‘) s1, rpad(‘ffm‘,8,‘=‘)s2 from dual;
--常用數字、數學相關函數
1、取整函數(ceil向上取整,floor向下取整)
select ceil(66.6) N1,floor(66.6)N2 from dual;
2、取冪(power)和求平方根(sqrt)
select power(3,2) N1,sqrt(9) N2from dual;
3、求餘(mod)
select mod(9,5) from dual;
4、返回固定小數位元 (round:四捨五入,trunc:直接截斷)
select round(66.667,2)N1,trunc(66.667,2) N2 from dual;
5、返回值的符號(sign正數返回為1,負數為-1)
select sign(-32),sign(293) fromdual;
6、返回x的絕對值ABS(x)
SELECT ABS(3), ABS(-1) FROM DUAL;
7、返回以x為底y的對數LOG(x,y)
8、返回x的y次冪POWER(x,y)
9、返回x的平方根 SQRT(x)
SELECTLOG(10,100), POWER(3,3), SQRT(4) FROM DUAL;
Oracle 常用函數- 字元和數學函數