Oracle 單行函式

2021-08-30 05:23:49 字數 2884 閱讀 6887

三、oracle 單行函式

1. 數字函式

abs 取絕對值 power 乘方 ln 10為底數取0

sqrt 平方根 exp e的n次乘方 log(m,n) m為底數n取0

數**算函式:acos atan atan2 cos cosh sign sin sinh tan tanh

ceil 大於或等於取整數

floor 小於或等於取整數

mod 取餘數

round(n,m) 按m的位數取四捨五入值如果round(日期): 中午12以後將是明天的日期.

round(sysdate,'y')是年的第一天

trunc(n,m) 按m的位數取小數點後的數值如果trunc(日期), 確省的是去掉時間

2. 字元函式

chr 按資料庫的字符集由數字返回字元

concat(c1,c2) 把兩個字元c1,c2組合成乙個字元, 和 || 相同

replace(c,s,r) 把字元c裡出現s的字元替換成r, 返回新字元

substr(c,m,n) m大於0,字元c從前面m處開始取n位字元,m等於0和1一樣,

m小與0,字元c從後面m處開始取n位字元

translate(c,f1,t1) 字元c按f1到t1的規則轉換成新的字串

initcap 字元首字母大寫,其它字元小寫

lower 字元全部小寫

upper 字元全部大寫

ltrim(c1,c2) 去掉字元c1左邊出現的字元c2

rtrim(c1,c2)

trim(c1,c2) 去掉字元c1左右兩邊的字元c2

lpad(c1,n,c2) 字元c1按制定的位數n顯示不足的位數用c2字串替換左邊的空位

rpad(c1,n,c2)

3. 日期函式

add_months(d,n) 日期值加n月

last_day 返回當月的最後一天的日期

months_between(d1,d2) 兩個日期值間的月份,d1

next_day 返回日期值下一天的日期

sysdate 當前的系統時間

dual是sys使用者下乙個空表,它只有乙個欄位dummy

4. 轉換函式(1)

to_char(date,'日期顯示格式')

to_char(number) 用於顯示或報表的格式對齊

to_date(char,'日期顯示格式')

to_lob 把long欄位轉換成lob欄位

to_number(char) 用於計算或者比較大小

4. 轉換函式(2)

to_date裡日期顯示格式

yyyy 年 year yyy yy y

q 季度

mm 月 month mon

w 星期 (week of month) ww, iw (week of year)

(說明:周計是按iso標準,從1月1日的星期數到後面七天為一周,不一定是從周一到週日)

dd 日 day dy

hh24 小時 hh12 hh

mi 分鐘

ss 秒

如果想固定日期的顯示格式可以在資料庫的引數檔案initorasid.ora裡新寫一行引數

nls_date_format=yyyy-mm-dd

hh24:mi:ss可以在unix環境變數或者nt的登錄檔裡的設定 nls_date_format=yyyy-mm-dd

hh24:mi:ss

4. 轉換函式(3)

如果想固定日期的顯示格式可以用alter session命令改變

sql> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

它的作用順序如下:

initialization parameter

environment variable

alter session command

4. 轉換函式 (4)

to_char(number)裡數字顯示格式

9 數字位

0 數字前面補0 to_char(-1200,'00000.00')

. 小數點的位置

, 標記位置的逗號 用在數字顯示格式的左邊

l 根據資料庫字符集加貨幣符號 to_char(-1200,'l9999.99')

b 把數字0顯示為空格,用在數字顯示格式的右邊

mi 右邊的負數標記 to_char(-1200,'9999.99mi')

pr 括起來的負數 to_char(-1200,'9999.99pr')

eeee 用指數方式表示 to_char(-1200,'9999.99eeee')

5. 輸入字元,返回數字的函式

instr(c1,c2) 字元c2出現在c1的位置, 不出現, 返回0, 常用於模糊查詢

length 按資料庫的字符集,算出字元c的長度,跟資料庫的字符集有關, 乙個漢字長度為1

6. 有邏輯比較的函式nvl(expr1, expr2)函式

解釋: if expr1=null return expr2

else return expr1

decode(aa0v10r10v20r2....)函式

解釋: if aa=v1 then return r1

if aa=v2 then return r2

..…else

return null

舉例: decode(id,1,'dept sale',2,'dept tech')

oracle單行函式

1.字元函式 upper 全大寫 lower 全小寫 initcap 首字母大寫 length 取長度 substr 擷取字串 replace 替換 2.數值函式 round 四捨五入 trunc 擷取 mod 取餘 3.日期函式 當前日期 sysdate 日期 數字 日期 日期 數字 日期 日期 ...

oracle單行函式

單行函式 函式類別 單行 返回單個結果 substr,length 多行 返回多個結果,any,all 單行的分類 字元類,日期類,數字類,轉換類,通用類 1.字元類 轉換大小寫 lower 轉換為小寫 select ename,lower ename from emp upper 轉換為大寫 se...

Oracle單行函式

單行函式 運算元據物件,接受引數返回乙個結果,只對一行進行變換,每行返回乙個結果,可以轉換資料型別,可以巢狀,引數可以是一列或乙個值 一 字元函式 concat 字串連線,相當於 initcap 將引數的第乙個字母變為大寫 lower 將引數轉換為全部小寫字母 upper 將引數轉換為全部大寫字母 ...