附 录SQL Server 2005内置函数及说明
(1)常用数学函数

续表

说明:
①PI()函数不使用参数。
②关于随机函数RAND(),其语法格式为RAND([seed]),其中参数seed称为种子,要求是整型(tinyint,smallint或int)表达式。如果未指定seed,则SQL Server数据库引擎随机分配种子值。而如果指定了种子值,返回的结果始终相同。例如:
SELECT rand(1),rand(1),rand(1),rand(1)
会产生4个完全一样的随机数,而
SELECT rand(),rand(),rand(),rand()
则产生4个不相同的随机数。
③关于ROUND(num_exp,int_exp[,Function])函数:
该函数格式中的第二个参数int_exp指定对参数num_exp的舍入精度。它必须是tinyint,smallint或int类型的表达式。
函数格式中的第三个参数Function,用于规定ROUND()函数的功能。如果该参数缺省或者为0,则函数的功能是对参数num_exp作舍入处理;如果该参数不为0,则ROUND()函数的功能是对num_exp作截断处理。
如果int_exp为正数,则将num_exp舍入int_exp指定的小数位数。如果int_exp为负数,则将num_exp小数点左边部分舍入int_exp指定的长度。
例如:
ROUND(123.9994,3)=123.9990(对小数点第3位后的4作舍去处理)
ROUND(123.9995,3)=124.0000(对小数点第3位后的5作上入处理)
ROUND(748.58,-1)=750.00(对小数点左边的1位8作上入处理)
ROUND(748.58,-2)=700.00(对小数点左边的2位作舍去处理)
ROUND(748.58,-3)=1000.00(对小数点左边的3位作上入处理)
下面是一个舍入和截断对比的例子:
ROUND(150.75,0),无Function参数,故作舍入操作,其返回值为151.00。
ROUND(150.75,0,1),有Function参数,故作截断操作,其返回值为150.00。
可见,截断处理不遵守“四舍五入”的规则,而是一律舍去。
(2)常用字符串函数

说明:
①关于CHARINDEX(char_exp1,char_exp2[,start])函数:
本函数在char_exp2中搜索char_exp1并返回其起始位置(如果找到了)。搜索的起始位置为start。要查找的字符串char_exp1最大长度为8000个。
Start是表示搜索起始位置的整数或bigint表达式。如果未指定参数start,或者参数start为负数或为0,则将从char_exp2的开头开始搜索。
如果char_exp1或char_exp2之一是Unicode数据类型(nvarchar或nchar),而另一个不是,则会将另一个转换为Unicode数据类型。CHARINDEX()函数不能与text,ntext和image数据类型一起使用。
本函数的返回类型:如果char_exp2的数据类型为varchar(max),nvarchar(max)或varbi-nary(max),则为bigint,否则为int。
如果在char_exp2内找不到char_exp1,则CHARINDEX()返回0。
返回的开始位置从1开始,而非从0开始。
例如,SELECT CHARINDEX(‘TEST’,‘This is a Test’)返回值为13,注意这里没有区分大小写形式。而SELECTCHARINDEX(‘TEST’,‘This is a Test’COLLATE Latin1_General_CS_AS)返回值为0,因为COLLATE Latin1_General_CS_AS是要求区分大小写。
②关于STUFF(char_exp1,start,len,char_exp2)函数:
STUFF函数将字符串插入另一字符串。它先在第一个字符串中从参数start指定的位置开始删除指定长度(参数len)的字符;然后将第二个字符串从刚才开始删除的位置插入进第一个字符串中。
start是一个整数值,指定删除和插入的开始位置。如果start或len为负,则返回空字符串。如果start比第一个字符串char_exp1长,则返回空字符串。start可以是bigint类型。
len也是一个整数,指定要删除的字符数。如果len比char_exp1长,则最多删除到最后一个字符。len可以是bigint类型。
例如,Select STUFF(‘This Pen’,6,‘Car’)将返回‘This Car’。SELECT STUFF(‘This’,5,1,‘is a red Pen’)返回NULL(即空值);而SELECT STUFF(‘This倡’,5,1,‘is a red Pen’)返回‘This is a red pen’;SELECT STUFF(‘This’,1,8,‘is a red Pen’)中指定的参数len大于第一个字符串的长度,因此返回‘is a red Pen’。
(3)常用日期时间函数

其中,日期元素如下:

(4)常用集合函数

说明:
VAR/VARP/STDEV/STDEVP用于概率统计中,反映一组数值的分布或离散程度。