常用聚合函数:
聚 合 函 数 | 功 能 |
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 |