SQL Server 聚合函数
聚合函数用于对一组值进行计算并返回一个单一的值。聚合函数经常与查询语句SELECT一起使用。例如,设当前数据库拥有一个员工表employee,其中,有一个工资列salary,要统计所有员工的工资总和,可以使用以下的SELECT语句:SELECT SUM(salary) FROM employee常用聚合函数:
聚 合 函 数
功 能
AVG(表达式)
返回数据表达式(含有列名)的平均值
COUNT(表达式)
对表达式指定的列值进行计数,忽略空值
COUNT(*)
对表或组中的所有行进行计数,包含空值
MAX(表达式)
表达式中最大的值(文本数据类型中按字母顺序排在最后的值)。忽略空值
MIN(表达式)
表达式中最小的值(文本数据类型中按字母顺序排在最前的值)。忽略空值
SUM(表达式)
表达式值的合计
另:
数学函数:
函 数
功 能
示 例
返 回值
ABS(数字表达式)
返回数字表达式的绝对值
ABS(−1.0)
1.0
SQRT(float表达式)
返回float表达式的平方根
SQRT(2)
1.4142135623730951
SQUARE(float表达式)
返回float表达式的平方
SQUARE(2)
4.0
POWER(数字表达式,y)
返回数字表达式的y次方
POWER(2,6)
64
SIN(float表达式)
返回表达式给定角度(以弧度为单位)的正弦值
SIN(30*3.1416/180)
0.50000106036260283
COS(float表达式)
返回表达式给定角度(以弧度为单位)的余弦值
COS(30*3.1416/180)
0.86602479158293899
TAN(float表达式)
返回表达式给定角度(以弧度为单位)的正切值
tan(45*3.1416/180)
1.0000036732118496
LOG(float表达式)
返回给定float表达式的自然对数
LOG(2.7182)
0.99996989653910984
LOG10(float表达式)
返回给定float表达式的以10为底的对数
LOG10(10)
1.0
EXP(float表达式)
返回所给的float表达式的指数值
EXP(1)
2.7182818284590451
ROUND(数字表达式,长度)
返回数字表达式并四舍五入为指定的长度或精度
ROUND(123.9994,3)
ROUND(748.58, −2)
123.9990
700.00
CEILING(数字表达式)
返回大于或等于所给数字表达式的最小整数
CEILING(123.45)
CEILING(−123.45),
124.00
−123.00
FLOOR(数字表达式)
返回小于或等于所给数字表达式的最大整数
FLOOR(123.45)
FLOOR(−123.45)
123
−124
PI( )
返回π的常量值
PI( )
3.1415926535897931
RADIANS(数字表达式)
将数字表达式指定的角度值转换为弧度值
RADIANS(180.0)
3.141592653589793100
DEGREES(数字表达式)
将数字表达式指定的弧度值转换为角度值
DEGREES(3.1416)
180.000420918299430000
SIGN(数字表达式)
根据给定数字表达式是正、零或负返回1、0或−1
SIGN(23)
SIGN(0)
SIGN(−9)
1
0
−1
RAND([种子值])
返回0~1之间的随机float值。参数种子值可以省略
RAND(7)
0.71370379104047277
字符串函数:
函 数
功 能
示 例
返 回值
UPPER(字符表达式)
将指定的字符串转换为大写字符
UPPER('Abcd')
'ABCD'
LOWER(字符表达式)
将指定的字符串转换为小写字符
LOWER('HELLO')
'hello'
LTRIM(字符表达式)
删除指定的字符串起始的所有空格
LTRIM(' how are you')
'how are you'
RTRIM(字符表达式)
删除指定的字符串末尾的所有空格。
RTRIM('how are you ')
'how are you'
SPACE(整数表达式)
返回由重复的空格组成的字符串。空格数由整数表达式指定
'Hello'+SPACE(3)+'Zhang'
'Hello Zhang'
REPLICATE(字符表达式,整数表达式)
以整数表达式指定的次数重复字符表达式
REPLICATE('ab',3)
'ababab'
STUFF(字符表达式1,起始位置,长度,字符表达式2)
删除字符表达式1中从起始位置开始的由长度指定个数的字符,然后在删除的起始位置插入字符表达式2的值
STUFF('abcdef',2,3,'ijklmn')
'aijklmnef'
REVERSE(字符表达式)
返回字符表达式的反转
REVERSE('abc')
'cba'
ASCII(字符表达式)
返回字符表达式最左端字符的ASCII代码值
ASCII('A')
ASCII('Abc')
65
65
CHAR(整数表达式)
将整数表达式的值作为ASCII代码转换为对应的字符
CHAR(65)
'A'
STR(float表达式[,总长度[,小数位数]])
由数字数据转换为字符数据。总长度默认值为10。小数位数默认值为0
STR(3.1415926,8,4)
STR(3.1415926,5)
' 3.1416'
' 3'
LEN(字符表达式)
返回给定字符表达式的字符(而不是字节)个数,不包含尾随空格
LEN('abc')
LEN('abc ')
3
3
RIGHT(字符表达式,长度)
返回字符串中右边指定长度的字符
RIGHT('hello',3)
'llo'
LEFT(字符表达式,长度)
返回字符串中左边指定长度的字符
LEFT('hello',3)
'hel'
SUBSTRING(表达式,起始位置,长度)
返回表达式从指定起始位置开始,指定长度的部分,表达式可以是字符串、binary、text或 image类型的数据
SUBSTRING('hello',3,2)
SUBSTRING('hello',3,5)
'll'
'llo'
CHARINDEX(字符表达式1,字符表达式2[,起始位置])
查找并返回字符表达式1在字符表达式2中出现的起始位置,如果指定参数“起始位置”,则从该起始位置开始向后搜索
CHARINDEX('cd','abcdabcd')
CHARINDEX('cd','abcdabcd',4)
CHARINDEX('dc','abcdabcd')
3
7
0
REPLACE(字符表达式1,字符表达式2,字符表达式3)
用字符表达式3替换字符表达式1中出现的所有字符表达式2
REPLACE('abcdefghicde','cde','xxx')
'abxxxfghixxx'
事件和日期函数:
函 数
功 能
示 例
返 回值
GETDATE( )
返回当前系统日期和时间
GETDATE( )
2012-03-24 21:46:38.320
DATEADD(日期部分,数字,日期)
对指定日期的某一部分加上数字指定的数,返回一个新的日期。日期部分取值见表4-15
DATEADD(DAY,1,'1780-11-01')
DATEADD(MONTH,5,'1780-11-01')
11 2 1780 12:00AM
04 1 1781 12:00AM
DATEDIFF(日期部分,起始日期,终止日期)
返回指定的起始日期和终止日期之间的差额,日期部分规定了对日期的哪一部分计算差额。日期部分取值见表4-14
DATEDIFF
(MONTH,'1780-1-11','1780-11-01')
DATEDIFF
(YEAR,'1790-1-11','1780-11-01')
10
−10
DATENAME(日期部分,日期)
返回代表指定日期的指定日期部分,结果为字符类型
DATENAME(month,getdate())
08
(设当前为8月份)
DAY(日期)
返回指定日期的天数,结果为int类型
DAY('03/12/1998')
12
MONTH(日期)
返回指定日期的月份数,结果为int类型
MONTH('03/12/1998')
3
YEAR(日期)
返回指定日期的年份数,结果为int类型
YEAR('03/12/1998')
1998
页:
[1]