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;