Oracle 基礎知識中的單行函數中包括六個主要項目,其中包括數字函數的相關介紹,字符函數的實際應用以及日期函數等相關內容的介紹,以下就是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(日期), 確省的是去掉時間
6
J2EE @ zxw
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<d2 返回負數
NEXT_DAY 返回日期值下一天的日期
SYSDATE 當前的系統時間
DUAL是SYS用戶下一個空表,它只有一個字段dummy
4. 轉換函數(1)
TO_CHAR(date,'日期顯示格式')
TO_CHAR(number) 用於顯示或報表的格式對齊
TO_DATE(char,'日期顯示格式')
TO_LOB 把long字段轉換成lob字段
TO_NUMBER(char) 用於計算或者比較大小
轉換函數(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
7
J2EE @ zxw
hh24:mi:ss
轉換函數(3)
如果想固定日期的顯示格式可以用alter session命令改變
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
它的作用順序如下:
initialization parameter
Environment variable
ALTER SESSION command
轉換函數 (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')