oracle 常用函式

2021-06-07 08:24:48 字數 2809 閱讀 5293

字元函式:

lower('')

字母小寫

upper('')

字母大寫

initcap('')            每個單詞首字母大寫

concat('','')          字串拼接

substr('',a,b)      擷取從a開始的b個字元(b不填表示到字串末尾,第乙個字元計數為1,不為0)

length('')             字串長度

instr('abc','a')     字元a在字串"abc"中第一次出現的位置,沒有找到返回0

lpad('abc',n,'*')   左填充 如果字串長度小於n,字串左邊用'*'補齊到n位 如果長度大於n,則取前n位

rpad('abc',n,'*')   右填充 參見lpad

trim('')                  去掉前後空格(trim('a' from 'abc')表示去掉a 返回'bc')

數字函式:

round(a,b)              四捨五入如果b>0 表示小數點後保留b位, b=0 保留到個位 b<0 保留到10*(-b)位 如round(1234.567,-2)= 1200

trunc(a,b)              只舍不入(例如 trunc(1234.567, 1)=1234.5 ) b的說明參見round

mod(a,b)                取模 返回 a % b

日期函式:

months_between('','')   返回兩個日期相差天數

add_months ('',a)       返回日期加上a天後的日期

next_day ('','friday')  返回下乙個周五的日期

next_day ('',1)         返回下乙個週日的日期(1表示周的第一天) 

last_day('')            返回該日期所在月的最後一天的日期

round('','')            返回該日期按month或者year四捨五入之後的日期 第二個引數填month或者year 

trunc('' ,'')           只舍不入,參見round('','')

日期轉換為字串:

to_char(date,'')

yyyy     4位數字表示的年份

year     英文描述的年份

mm       2位數字表示的月份

month    英文描述的月份

mon      三個字母的英文描述月份簡稱

dd       2位數字表示的日期

day      英文描述的星期幾

dy       三個字母的英文描述的星期幾簡稱

hh24:mi:ss am 時分秒的格式化

ddspth   英文描述的月中第幾天

fm       格式化關鍵字,可選

數字轉換為字串

to_char(number,'')

9       表示乙個數字

0       強制顯示0

$       放乙個美元佔位符

l       使用浮點本地幣種符號

.       顯示乙個小數點佔位符

,       顯示乙個千分位佔位符

字串轉換為數字:

to_number('')            純數字字串轉換為數字(可帶小數點)

to_number('','')         根據第二個引數格式轉換為數字

eg: to_number('$123,456,789','$9,999,999,999') 格式字串要條件要略寬於要轉換的字串,否則轉換失敗

字串轉換為日期

to_date('','')           根據引數二的格式講字串轉換為date型別,引數二中盡量不要使用rr

邏輯判斷函式:

case函式:

eg:select last_name,  job_id, salary,

case job_id

when 'it_prog' then 1.10*salary

when 'st_clerk' then 1.15*salary

when 'sa_rep' then 1.20*salary

else salary 

end 

as "revised_salary"

from employees;

decode函式:

select last_name,  job_id, salary,

decode(job_id, 

'it_p rog', 1.10*salary,

'st_clerk', 1.15*salary,

'sa_rep', 1.20*salary,

salary)

as "revised_salary"

from employees;

nvl(expr1,expr2)              若expr1為空則返回expr2

nvl2(expr1,expr2,expr3)  若expr1為空則返回expr3否則返回expr2

nullif(expr1,expr2)          相等返回null

coalesce(expr1,expr2..)  返回第乙個不為null的值,如果全為null,則返回null

Oracle常用函式

一 row number over 資料甲 1 select column name column name,data type,2 row number over partition by column name order by column name row num 3 from test c...

Oracle常用函式

數學函式 1.絕對值 o select abs 1 value from dual 2.取整 大 o select ceil 1.001 value from dual 3.取整 小 o select floor 1.001 value from dual 4.取整 擷取 o select trun...

oracle常用函式

1.concat c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1 c2都為null,則返回null。他和操作符 返回的結果相同 select concat slobo svoboda username from dualuse...