|
聚合函数用于对一组值进行计算并返回一个单一的值。聚合函数经常与查询语句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
|
|
|
|