Posted on 2007-05-23 12:52
胡娟 閱讀(680)
評論(0) 編輯 收藏 所屬分類:
Oracle
字符函數:
LOWER函數:將字符串轉換成小寫形式
1
SQL> select lower(ename) from emp;
UPPER函數:將字符串轉換成大寫形式
INITCAP函數:將字符串轉換成首字母大寫形式
CONCAT函數:將字符串連接起來。其格式:concat(job,ename) 將job與ename連接起來。也可以用 || 連接
1
SQL> select concat(job,ename) from emp;
SUBSTR函數:截取字符串。其格式:substr(c,p,l) c表示字符串,p表示要提取的起始字符串的位置,l表示提取的長度。如果p為負值表示從字符串的最后一位開始倒著向前找要提取的字符串的位置。
1
SQL> select ename,substr(ename,-3,2) from emp where empno = 7369;
2
//查詢結果
3
ENAME SUBSTR(ENAME,-3,2)
4
---------- ------------------
5
SMITH IT
LENGTH函數:字符串的長度
L/RPAD:填充字符串左/右側的區域。其格式:LPAD(c,l,s) c表示要填充的字符串,l表示填充后字符串的長度,s表示用于填充的符號或者字符
L/RTRIM函數:去掉左/右側空格
REPLACE函數:用于字符串的替換。其格式:replace(c,s,r) c表示將處理的字符串,s表示想要查找的字符串,r 表示將要替換的字符串。
數字函數:
Round函數:用來將數字字段四舍五入到指定的精度。其格式:round(n,p) n表示要四舍五入的數字,p表示小數點后保留幾位小數
TRUNC函數:用來將數字字段截斷的指定的精度。其格式:trunc(n,p) n表示要截取的數字,p表示小數點后保留幾位小數
日期函數:
MONTHS_BETWEEN函數:表示兩個月之間相差的天數。其格式:months_between(date1,date2) date1晚于date2,返回正數,date1早于date2,返回負數。
ADD_MONTHS函數:表示某個月以后的日期。其格式:add_months(date,n)向大特加上n個月,你為正整數
NEXT_MONTHS函數:表示一周后某天的日期。其格式:next_months(date,'char')。char為星期幾
LAST_DAY(date)函數:表示date所在月的最后一天
TO_DATE(date,day)函數:表示將date轉化為day的格式
ROUND_DATE(date,day)函數:將date以day的格式進行四舍五入到最近的天
通用函數:
NVL函數: 可以使用NVL函數來解決對可能包含null值的字段執行數學運算時導致的問題。在oracle9i中,null值不等于空格或者0。其格式:nvl(a,b) a表示列的值為null,b 表示替換為b
NVL2函數:他允許不同的選項,這取決于是否存在null值。其格式:nvl2(x,y,z),其中y表示當x不是null時所替換的數據,z表示當x是null時所替換的數據。
組函數:
MAX、MIN函數可用于對數值型或日期型的數據使用。AVG、SUM函數用于數值型的列
COUNT函數:count(*)返回表中行的總數,包括重復行和數據列中包含的空值。count(x) 表示x列所包含非空行的數量。
GROUP BY子句:將表中的記錄劃分成若干個小組,通過組函數等到每個組的簡要信息。group by子句中必須包含指定的列,不能使用列的別名。
1
SQL> select deptno,avg(sal) from emp group by deptno order by deptno;
2
查詢結果
3
DEPTNO AVG(SAL)
4
------ ----------
5
10 2916.66666
6
20 2175
7
30 1566.66666
8
HAVING子句:要在組函數結果的基礎上對記錄加以限制,則必須在使用group by的同時使用having子句。
1
SQL> select deptno,max(sal) from emp group by deptno having max(sal)>2000;
2
查詢結果
3
DEPTNO MAX(SAL)
4
------ ----------
5
30 2850
6
20 3000
7
10 5000
8