SQL函數總結
彙總函數:
1.COUNT
該函數將返回滿足WHERE條件子句中記錄的個數!
SQL>SELECT COUNT(*)
FROM TEAMSTATS
WHERE HITS/AB<0.35;
2.SUM
SUM就如同它的本意一樣,它返回某一列的所有數值的和!
SQL>SELECT SUM(SINGLES) TOTAL_SINGLES
FROM TEAMSTATS;
3.AVG
AVG可以返回某一列的平均值!
SQL>SELECT AVG(SO) AVE_STRIKE_OUTS
FROM TEAMSTATS;
4.MAX
MAX返回某一列中的最大值!
SQL>SELECT MAX(HITS)
FROM TEAMSTATS;
5.MIN
MIN返回一列中的最小數值!
SQL>SELECT MIN(AB)
FROM TEAMSTATS;
6.VARIANCE
VARIANCE(方差)和數學公式中的方差有不同:
l 數學公式中的方差-VARIANCE如下:
(1/n)*[(X1-X拔)2+(X2-X拔)2+……+(Xn-X拔)2]
其中‘X拔’是X1、X2、……Xn的平均數
l PLSQL中的方差(VARIANCE)爲如下:
VARIANCE:方差,數列中各項和平均值的差平方後求和,然後除以數列個數減一,得到的即爲方差。
SQL>SELECT VARIANCE(HITS) FROM TEAMSTATS;
7.STDDEV
STDDEV返回某一列數值的標準差!公式如下:
STDDEV:標準差,就是上面算出來的方差(VARIANCE)的開平方根
SQL>SELECT STDDEV(HITS) FROM TEAMSTATS;
日期/時間函數:
1.ADD_MONTHS
ADD_MONTHS將給定的日期增加一個月!
SQL>SELECT TASK,STARTDATE,ENDDATE ORIGINAL_END,
ADD_MONTHS(ENDDATE,2)
FROM PROJECT;
2.LAST_DAY
LAST_DAY將返回指定月份的最後一天!
SQL>SELECT ENDDATE,LAST_DAY(ENDDATE)
FROM PROJECT;
3.MONTHS_BETWEEN
MONTHS_BETWEEN將返回給定的兩個日期中有多少個月!
SQL>SELECT TASK,STARTDATE,ENDDATE,
MONTHS_BETWEEN(ENDDATE,STARTDATE) DURATION
FROM PROJECT;
4.NEW_TIME
NEW_TIME將把時間調整到你所在的時區!
簡寫 時區
AST or ADT 大西洋標準時間
BST or BDT 英國夏令時
CST or CDT 美國中央時區
EST or EDT 美國東部時區
GMT 格倫威治標準時間
HST or HDT 阿拉斯加_夏威夷時間
MST or MDT 美國山區時間
NST 新大陸標準時間
PST or PDT 太平洋標準時間
YST or YDT Yukon標準時間
SQL>SELECT ENDDATE EDT,NEW_TIME(ENDDATE,’EDT’,’PDT’)
FROM PROJECT;
5.NEXT_DAY
NEXT_DAY將返回與指定日期在同一個星期或之後一個星期內的,你所要求的最近的星期天數的確切日期!
SQL>SELECT STARTDATE,NEXT_DAY(STARTDATE,’星期五’)
FROM PROJECT;
6.SYSDATE
SYSDATE將返回系統的日期和時間!
SQL>SELECT DISTINCT SYSDATE
FROM PROJECT;
數學函數:
1.ABS
ABS將返回給定數字的絕對值!
SQL>SELECT ABS(A) ABSOLUTE_VALUE
FROM NUMBERS;
2.CEIL和FLOOR
CEIL返回與給定參數相等或比給定參數大的最小整數;
FLOOR正相反,返回與給定參數相等或比給定參數小的最大整數!
SQL>SELECT B,CEIL(B) CEILING,FLOOR(B) FLOOR
FROM NUMBERS;
3.COS,COSH,SIN,SINH,TAN,TANH
COS,SIN,TAN函數可以返回給定參數的三角函數值(餘弦、正弦,正切),默認的參數認定爲弧度制!
圓周率(圓周長/圓直徑)
弧度(弧長/半徑)
弧度與角度的關係:
pi=周長/直徑=周長/(2*半徑)
2*pi=周長/半徑(對應角度是360度,等於360度對應的弧度)
因此,
1弧度=180度/pi
1度=(pi/180)弧度=0.017453292222弧度
SQL>SELECT A,COS(A*0.01745329251994),SIN(A*0.017453),TAN(A*0.017453)
FROM NUMBERS;
COSH,SINH,TANH函數返回給定參數的雙曲函數值!
SQL>SELECT A,COSH(A*0.017453),SINH(A*0.017453),TANH(A*0.017453)
FROM NUMBERS;
4.EXP
EXP將返回以給定的參數爲指數,以E爲底數的冪值!
SQL>SELECT A,EXP(A) FROM NUMBERS;
5.LN和LOG
LN和LOG是兩個對數函數,其中LN返回給定參數的自然對數!(負數沒有對數!)
SQL>SELECT A,LN(ABS(A))
FROM NUMBERS;
LOG函數需要兩個參數,其中第二個參數爲底數!
SQL>SELECT B,LOG(B,10)
FROM NUMBERS;
6.MOD
MOD爲取模函數(返回A與B參數相除後的餘數)!在ANSI標準中規定取模運算的符號爲%,但在一些解釋器中被函數MOD所取代!
SQL>SELECT A,B,MOD(A,B)
FROM NUMBERS;
7.POWER
POWER函數返回某一個數對另一個數的冪(第一個參數爲底數,第二個參數爲指數)!
注:第一個參數爲負數時,第二個參數必須爲整數(負數是不能開方的)!
SQL>SELECT A,B,CEIL(B),POWER(A,CEIL(B))
FROM NUMBERS;
8.SIGN
如果參數的值爲負數,那麼SIGN返回–1;
如果參數的值爲正數,那麼SIGN返回1;
如果參數爲零,那麼SIGN也返回零!
SQL>SELECT A,SIGN(A) FROM NUMBERS;
9.SQRT
SQRT函數返回參數的平方根(由於負數是不能開平方的,因此參數不能爲負數!)!
SQL>SELECT A,SQRT(ABS(A))
FROM NUMBERS;
字符函數:
1.CHR
CHR函數返回與所給數值參數在字符集中對應的字符!
SQL>SELECT CODE,CHR(CODE) FROM CHARACTERS;
2.CONCAT
CONCAT函數將兩個參數字符串連接起來,與||功能相當!
SQL>SELECT CONCAT(FIRSTNAME,LASTNAME) “FIRST AND LAST NAMES”
FROM CHARACTERS;
3.INITCAP
INITCAP將參數的第一個字母變爲大寫,其它的字母則轉換成小寫!
SQL>SELECT FIRSTNAME BEFORE,INITCAP(FIRSTNAME) AFTER
FROM CHARACTERS;
4.LOWER和UPPER
LOWER將參數全部轉換爲小寫字母;
UPPER把參數全部轉換成大寫字母!
SQL>UPDATE CHARACTERS
SET FIRSTNAME=’kelly’
WHERE FIRSTNAME=’KELLY’;
SQL>SELECT FIRSTNAME,UPPER(FIRSTNAME),LOWER(FIRSTNAME)
FROM CHARACTERS;
5.LPAD與RPAD
這兩個函數最少需要兩個參數,最多需要三個參數。
第一個參數是需要處理的字符串;第二個參數是需要將字符串擴充的寬度;第三個參數表示加寬部分用什麼字符來做填補!(第三個參數的默認值爲空格!但也可以是單個的字符或字符串!)
LPAD與RPAD分別是左填充和右填充的意思!
SQL>SELECT LASTNAME,LPAD(LASTNAME,20,’*’),RPAD(FIRSTNAME,20,’*’)
FROM CHARACTERS;
6.LTRIM與RTRIM
這兩個函數最少需要一個參數,最多需要兩個參數。
第一個參數是需要處理的字符串;第二個參數是需要剪除的字符或字符串!(第二個參數默認是空格!如不是空格,則將剪除指定的字符!)
LTRIM與RTRIM分別是左剪除和右剪除的意思!
SQL>SELECT LASTNAME,RPAD(RTRIM(LASTNAME),20,’*’)
FROM CHARACTERS;
SQL>SELECT LASTNAME LTRIM(LASTNAME,’C’)
FROM CHARACTERS;
7.REPLACE
這個函數需要三個參數。
第一個參數是需要搜索的字符串;第二個參數是要搜索的內容;第三個參數則是需要替換的字符串!(如果第三個參數省略或者是NULL,那麼將只執行搜索操作並去除顯示!)
REPLACE是替換字符串中的特定字符!
SQL>SELECT LASTNAME,REPLACE(LASTNAME,’ST’) REPLACEMENT
FROM CHARACTERS;
SQL>SELECT LASTNAME,REPLACE(LASTNAME,’ST’,’**’) REPLACEMENT
FROM CHARACTERS;
8.SUBSTR
這個函數有三個參數。
第一個參數爲目標字符串;第二個參數是將要輸出的子串的起點;第三個參數是將要輸出的子串的長度!
SUBSTR將目標字符串中的一部分輸出!
SQL>SELECT FIRSTNAME,SUBSTR(FIRSTNAME,2,3)
FROM CHARACTERS;
9.TRANSLATE
這個函數有三個參數:目標字符串、源字符串和目的字符串。
TRANSLATE將目標字符串中有的源字符串的字符替換成目的字符串中的對應字符!
SQL>SELECT FIRSTNAME,TRANSLATE(FIRSTNAME,’AODCE’,’*/-+@’)
FROM CHARACTERS;
10.INSTR
INSTR函數指出在一個字符串中滿足特定搜索條件的字符或字符串的位置!
有四個參數:第一個參數是目標字符串;第二個參數是要搜索的內容;第三個參數是指定開始搜索的起點;第四個參數指出第幾個滿足條件的將會被返回!
SQL>SELECT LASTNAME,INSTR(LASTNAME,’O’,2,1)
FROM CHARACTERS;
11.LENGTH
LENGTH將返回指定字符串的長度!
SQL>SELECT FIRSTNAME,LENGTH(RTRIM(FIRSTNAME))
FROM CHARACTERS;
轉換函數:
1.TO_CHAR
TO_CHAR最初功能是將一個數字轉換爲字符型!(不同的解釋器會用它來轉換其它的數據類型爲字符型!)
SQL>SELECT TESTNUM,TO_CHAR(TESTNUM)
FROM CONVERSIONS;
2.TO_NUMBER
TO_NUMBER是將一個字符串型數字轉換爲數值型!
SQL>SELECT NAME,TESTNUM,TESTNUM*TO_NUMBER(NAME)
FROM CONVERSIONS;
其它函數:
1.GREATEST與LEAST
GREATEST函數是返回幾個表達式中最大的;
LEAST函數是返回幾個表達式中最小的!
SQL>SELECT GREATEST(‘ALPHA’,’BRAVO’,’FOXTROT’,’DELTA’,’FP’)
FROM CONVERSIONS;
SQL>SELECT DISTINCT LEAST(34,567,3,45,1090)
FROM CONVERSIONS;
2.USER
USER函數將返回當前使用數據庫的用戶的名字。
SQL>SELECT DISTINCT USER
FROM CONVERSIONS;