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