SQL Server 2005常用函数汇总_bangbangnt的空间默认分类2009-10-21 12:57:09 阅读114 评论0 字号:大中小订阅SQL Server 2005常用函数汇总2009-06-24 16:32最近公司接了个报表的项目,报表的要求非常高,算法非常变态,取的字段又多。
搞得其中的sql都像文章似的。
平时,我写一般都用标准的sql,这次用户需求那么复杂,时间又紧,而其用户只用sql server 2005,所以开始用起了数据库特性。
下面是收集的一些函数(其中一些别的数据库也通用的)聚合函数若要汇总一定范围的数值,请使用以下函数:SUM返回表达式中所有值的总和。
语法SUM(aggregate)SUM 只能与包含数值的字段一起使用。
将忽略空值。
AVERAGE返回表达式中所有非空值的平均值(算术平均值)。
语法AVERAGE(aggregate)AVERAGE 只能与包含数值的字段一起使用。
将忽略空值。
MAX返回表达式中的最大值。
语法MAX(aggregate)对于字符列,MAX 将按排序顺序来查找最大值。
将忽略空值。
MIN返回表达式中的最小值。
语法MIN(aggregate)对于字符列,MIN 将按排序顺序来查找最小值。
将忽略空值。
COUNT返回组中非空项的数目。
语法COUNT(aggregate)COUNT 始终返回Int 数据类型值。
COUNTDISTINCT返回组中某项的非空非重复实例数。
语法COUNTDISTINCT(aggregate)STDev返回某项的非空值的标准偏差。
语法STDEV(aggregate)STDevP返回某项的非空值的总体标准偏差。
语法STDEVP(aggregate)VAR返回某项的非空值的方差。
语法VAR(aggregate)VARP返回某项的非空值的总体方差。
语法VARP(aggregate)条件函数若要测试条件,请使用以下函数:IF如果指定了计算结果为TRUE 的条件,将返回一个值;如果指定了计算结果为FALSE 的条件,则返回另一个值。
语法IF(condition, value_if_true, value_if_false)条件必须是计算结果为TRUE 或FALSE 的值或表达式。
如果条件为True,则Value_if_true 表示返回的值。
如果条件为False,则Value_if_false 表示返回的值。
IN确定某项是否是集的成员。
语法IN(item, set)Switch对一系列表达式求值并返回与其中第一个为True 的表达式相关联的表达式的值。
Switch 可以有一个或多个条件/值对。
语法Switch(condition1, value1)转换若要将值从一种数据类型转换为另一种数据类型,请使用以下函数:INT将值转换为整数。
语法INT(value)DECIMAL将值转换为十进制数字。
语法DECIMAL(value)FLOAT将值转换为float 数据类型。
语法FLOAT(value)TEXT将数值转换为文本。
语法TEXT(value)日期和时间函数若要显示日期或时间,请使用以下函数:DATE返回给定年、月、日的上午12:00:00 的日期时间值。
语法DATE(year, month, day)DATEONLY从日期时间值返回年、月和日。
语法DATEONLY(datetime)DATETIME返回给定年、月、日、小时、分钟和秒的日期时间。
语法DATETIME(year, month, day, hour, minute, second) YEAR返回日期时间的年份值。
语法YEAR(datetime)QUARTER返回日期时间的日历季度(1-4)。
语法QUARTER(datetime)MONTH返回日期时间中的月。
语法MONTH(datetime)DAY从日期时间中提取“日”。
语法DAY(datetime)HOUR从日期时间中提取小时。
语法HOUR(datetime)MINUTE从日期时间中提取分钟。
语法MINUTE(datetime)SECOND从日期时间中提取秒。
语法SECOND(datetime)DAYOFYEAR返回日期时间中一年中的第几天。
1 月 1 日= 1 到12 月31 日= 366(假定是闰年)。
语法DAYOFYEAR(datetime)WEEK返回日历年中该周的数值。
语法WEEK(datetime)DAYOFWEEK返回星期几,从星期一开始。
星期一= 1 到星期日= 7。
语法DAYOFWEEK(datetime)NOW返回当前日期和时间。
语法NOW( )TODAY返回当前日期。
语法TODAY( )DATEDIFF返回开始日期时间和结束日期时间之间的差。
语法DATEDIFF(interval, datetime, datetime)DATEADD返回将指定数目的时间间隔单位添加到原始日期时间后得到的日期时间。
语法DATEADD(interval, units, datetime)CONVERT将某种数据类型的表达式显式转换为另一种数据类型。
由于某些需求经常用到取日期格式的不同.现以下可在SQL Server中将日期格式化.SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将datetime 或smalldatetime 转换为字符数据的style 值。
给style 值加100,可获得包括世纪数位的四位年份(yyyy)。
不带世纪数位(yy) 带世纪数位(yyyy)标准输入/输出**- 0 或100 (*) 默认值mon dd yyyy hh:miAM(或PM)1 101 美国mm/dd/yyyy2 102 ANSI yy.mm.dd3 103 英国/法国dd/mm/yy4 104 德国dd.mm.yy5 105 意大利dd-mm-yy6 106 - dd mon yy7 107 - mon dd, yy8 108 - hh:mm:ss- 9 或109 (*) 默认值+ 毫秒mon dd yyyy hh:mi:ss:mmmAM(或PM)10 110 美国mm-dd-yy11 111 日本yy/mm/dd12 112 ISO yymmdd- 13 或113 (*) 欧洲默认值+ 毫秒dd mon yyyy hh:mm:ss:mmm(24h)14 114 - hh:mi:ss:mmm(24h)- 20 或120 (*) ODBC 规范yyyy-mm-dd hh:mm:ss[.fff]- 21 或121 (*) ODBC 规范(带毫秒)yyyy-mm-dd hh:mm:ss[.fff]- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)- 130* 科威特dd mon yyyy hh:mi:ss:mmmAM- 131* 科威特dd/mm/yy hh:mi:ss:mmmAM逻辑函数若要测试条件的逻辑,请使用以下函数:AND如果所有参数都为TRUE,则返回TRUE;如果一个或多个参数为FALSE,则返回FALSE。
语法AND(logical, logical)参数的计算结果必须是逻辑值(例如TRUE 或FALSE),或者参数必须是包含逻辑值的数组或引用。
如果数组或引用参数包含文本或空单元,则忽略这些值。
OR如果任一参数为TRUE,则返回TRUE;如果所有参数均为FALSE,则返回FALSE。
语法OR(logical, logical)参数的计算结果必须是逻辑值(例如TRUE 或FALSE),或者是包含逻辑值的数组或引用。
如果数组或引用包含文本或空单元,则忽略这些值。
NOT颠倒其参数的值。
如果希望确保某子句不等于特定的值,请使用NOT。
语法NOT(logical)如果值为False,NOT 将返回True;如果值为True,NOT 将返回False。
数学函数若要进行数值操作,请使用以下函数:MOD返回数字除以除数之后的余数。
除数不能为0。
语法MOD(number, divisor)TRUNC按指定的位数截断数字。
如果数字为正,则从小数点右侧截断数字。
如果数字为负,则从小数点左侧截断数字。
语法TRUNC(number, digits)ROUND将数字舍入到指定的位数。
语法ROUND(number, digits)如果位数大于0(零),则将数字舍入到指定的小数位数。
如果位数为0,则数字舍入到最近的整数。
如果数字小于0,则数字舍入到小数点左侧。
运算符算术运算符若要执行基本的数学运算(例如加法、减法或乘法)、组合数字以及生成数值结果,请使用以下运算符:+ 加用于将两个或多个项相加。
语法value + value- 减用于从一个项减去另一个项。
语法value- value* 乘用于使项相乘。
语法value* value/ 除用于对项进行除运算。
除数不能为0。
语法value/divisor- 求反更改值的符号。
语法-value^ 求幂用于对值进行幂运算(求幂)。
语法value^power比较运算符若要比较两个值并返回逻辑值True 或False,请使用以下运算符:= 等于用于使两个值相等。
如果value1 等于value2,则为True。
语法value1= value2<> 不等于用于指示两个值不相等。
如果value1 不等于value2,则为True。
语法value1 <> value2用于指示一个值大于另一个值。
如果value1 大于value2,则为True。
语法value1 > value2>= 大于或等于用于指示一个值大于或等于另一个值。
如果value1 大于或等于value2,则为True。
语法value1 >= value2< 小于用于指示一个值小于另一个值。
如果value1 小于value2,则为True。
语法value1 < value2<= 小于或等于用于指示一个值小于或等于另一个值。
如果value1 小于或等于value2,则为True。
语法value1 <= value2文本函数若要在报表中进行文本操作,请使用以下函数:Concat (&)将两个字符串组合为一个字符串。
第二个字符串追加到第一个字符串的末尾。
语法string & stringFind第一个字符串实例的位置。
语法FIND(string, substring)Left返回字符串最左侧的一些字符。
如果在函数内指定的长度参数值小于零,则这种行为未定义。
语法LEFT(string, length)返回字符串中的字符数。
语法LENGTH(string)Lower将字符串从大写字符转换为小写字符。