常用系統函數oracle

單行函數
日期函數 ADD_MONTHS(date, n):用於從一個日期值增加或減少一些月份 
MONTHS_BETWEEN(date1, date2):判斷兩個日期之間相差的月份
LAST_DAY(date):    函數返回包含日期的月份的最後一天
ROUND(date[,'fmt']):   將日期d按照fmt指定的格式舍入,fmt爲字符串
TRUNC(date[, 'fmt']):   返回由fmt指定的單位的日期
NEXT_DAY(date, 'char'):找到下一個星期幾
extract(date_field from [datetime_value]):找出日期或間隔值的字段值
數字函數

ABS(x) 函數,此函數用來返回一個數的絕對值
CEIL(x)函數,用來返回大於或等於X的最小整數
COS(x)函數,返回x的餘弦值。x是以弧度表示的角度
COSH(x)函數,返回X的雙曲餘弦 
FLOOR(x)函數,用來返回小於或等於X的最大整數
POWER(x,y)函數,返回X的Y次冪。底X和指數Y都不必是正整數,但如果X是負數的話,Y必須是整數   
MOD(被除數,除數)求餘函數,如果除數爲0,則返回被除數
ROUND(x[,y])函數,返回舍入到小數點右邊Y位的X值。Y缺省爲0,這將X舍入爲最接近的整數。如果Y是負數, 那麼舍入到小數點左邊相應的位上,Y必須爲整數 
TRUNC(x[,y])截取值函數,Y缺省爲0,這樣X被截取成一個整數。如果Y爲負數,那麼截取到小數點左邊相應位置 
SQRT(x)函數,返回x的平方根,x不能是負數 
SIGN(x)函數,此函數用來返回一個數的正負值,若爲一個正數則返回1,若爲一個負數則返回-1,若爲0則仍返回0,有點像把模擬量數字化的意思 

字符函數

TRANSLATE(string,from_str,to_str):返回將(所有出現的)from_str中的每個字符替換爲to_str中的相應字符以後的string 
replace(string,search_str,replacement_str):返回的是string中每次search_str中出現的地方由replacement_str代替後的string  
Instr (string,char, m, n):從m位置開始尋找第n個string字符(串)(缺省m,n爲1)
SUBSTR(column|expression,m[,n])->返回從m開始的n個字符;若m爲負值,則從末尾開始數m

以下是一些其它的字符函數

CHR和ASCII
LPAD (string1,x[,string2]):返回在X字符長度的位置上插入一個string2中的字符的string1   
RPAD(string1,x[,string2]):返回在X字符長度的位置上插入一個string2中的字符的string1  
TRIM
trim([leading/trailing/both][匹配字符串或數值][from][需要被處理的字符串或數值])

LENGTH
DECODE

轉換函數 TO_CHAR
TO_DATE
TO_NUMBER
其他函數 GROUP BY子句
用於將信息劃分爲更小的組
每一組行返回針對該組的單個結果
HAVING子句
用於指定 GROUP BY 子句檢索行的條件
 
分析函數

分析函數根據一組行來計算聚合值
用於計算完成聚集的累計排名、移動平均數等
分析函數爲每組記錄返回多個行

以下三個分析函數用於計算一個行在一組有序行中的排位,序號從1開始
ROW_NUMBER 返回連續的排位,不論值是否相等
RANK 具有相等值的行排位相同,序數隨後跳躍
DENSE_RANK 具有相等值的行排位相同,序號是連續的

SELECT d.dname, e.ename, e.sal, DENSE_RANK()

  OVER (PARTITION BY e.deptno ORDER BY e.sal DESC)

  AS DENRANK

FROM emp e, dept d WHERE e.deptno = d.deptno;

   
   
   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章