能在SOL Server的数学函数中使用的数据类型包括:decimal,integer,float,real,money,smallmoney,smallint和tinyint。在默认情况下,数学函数把传递给它的数字当作十进制整数对待。
u;T*|vv#T0 在SOL Server中,数学运算的顺序与普通数学运算一致。
i7l D3N'OV0- 首先执行括号里的运算;
- 再执行乘方与开方运算
- 再按先乘除后加减的规则进行计算
- 最后执行逻辑运算
常用的SOL Server数学函数
&iU0ex1X6nb01. ABS(数值型表达式)求绝对值函数 返回数值型表达式的绝对值,返回值的数据类型与输入参数的数据类型一致。例如:select ABS(-3.0),ABS(0.0),ABS(2.0),ABS(5-4.5)返回结果: —————————————————— 3.0 .0 2.0 4.0
%c@{.F1oF$w02. ACOS(float型表达式)反余弦函数
"^)~7[9}]8r/?0返回以弧度为单位的角度值,参数为real或float数据类型
r}-s,p4K.rn1U03. ASIN(float型表达式)反正弦函数 返回以弧度为单位的角度值,参数为real或float数据类型51Testing软件测试网+V#]3N3w@
4. ATAN(float型表达式)反正切函数 返回以弧度为单位的角度值,参数为real或float数据类型51Testing软件测试网J~ m{}
5. ASCII(字符型表达式)求ASCII码函数 返回字符型数据的ASCII值,返回的数值类型为整形。例如: select
ASCII("d"),ASCII("D"),ASCII("z"),ASCII("Z") 返回值是:100 68 122 90
qv5nq[06. AVG([ALL|DISTINCT]表达式) 求平均值函数 求一组数据的平均值,如果这组数据中包含有NULL的数据,该数据将会被忽略。ALL关键字表示所有的数值都将会被计算在
内,DISTINCT关键字表示相同数值的数据将只会计算一次,默认取值为ALL。例如: select avg(advance) from titles where type='business'51Testing软件测试网"LU:k5^w7X$SJ5A
7. COUNT({[ALL|DISTINCT]表达式]|*})计数函数 求这一组数据的个数,ALL和DISTINCT关键字的意义同上。COUNT(*)返回这一组里所有的数据 包括重复数值和NULL 例如: select count (distinct city),count(all city) from
authors
*wY8~.k&r&A08. DEGREES(numeric型表达式)角度转换函数
e!`H[!y/i$n!J0将以numeric型表达式给出的弧度转换成角度类型的数值。例如:
Jg6Nl^J9Jn0 select "the number of degrees in PI/3
radians is:"+convert(varchar,degrees(PI()/3))
j|N~ k:b09. CEILING(数值型表达式)
C_ ?@(KB;L7M6E#u[)RX0 返回最小的大于或等于给定数值型表达式的整数值。返回值的数据类型与参数的数据类型相同。例如:51Testing软件测试网7zr*]#Us
select
ceiling($999.99),ceiling($-999.99),ceiling($0.0)51Testing软件测试网,R6|4f9}K"M!isa
10. FLOOR(数值型表达式)51Testing软件测试网Bs0p
sQ-s)_;mg
返回最大的小于或等于给定数值型表达式的整数值。返回值的数据类型与参数的数据类型相同。51Testing软件测试网B+cw)Xv&\
select floor($999.99),floor($-999.99),floor($0.0)
#f/eS9z'f#Lm011. LOG(float表达式)求自然对数函数
@lL}$Cq(V0 返回给定参数值的自然对数结果。
:L0_TN9TYl0}012. LOG10(float表达式)求常用对数函数51Testing软件测试网@0T%qr@
返回给定参数值的常用对数结果。
7XF1cq3`/f%Up013. POWER(数值型表达式子,数值表达式样)乘方运算函数
3@
R&q3\I,Zw0U0进行乘方运算,POWER(2,3)表示2的3次方。乘方运算函数返回值的数据类型与第一个参数数据类型相同。例如:51Testing软件测试网M3UbG]6H.nP4_
select power(2,-3),power(2.0,-3),power(2.00000,-3)51Testing软件测试网'u-n7eB
D%e'N,\B#@J
SQL server支持负数的乘方运算。由于返回值与第一个参数的数据类型相同,所以当第一个参数为整数时,返回值被转换成了整数(0.125转换成整数是0),当第一个参数是一位小数,返回值也相应保留一位小数。
@;r*Z/x#z!e n(CSZC014. EXP(float表达式)求自然指数运算51Testing软件测试网1IwM7A4[
求指定float表达式的自然指数值
;|-@+u5D,s1I8E`2I015. PI()求圆周率运算51Testing软件测试网d$l"o`7_
不使用参数,返回圆周率的正确数值。
_o4]GJ016. SQRT(float表达式)求平方根
Z|G;Jn[A*v0求指定float表达式的平方根,返回float型的结果
/k7FW#}8[017. SQUARE(float表达式)求平方值51Testing软件测试网@p]*Z&OaL
返回指定float表达式的平方,返回值依然是float型。
epwI-~qT
qB5yh018. SIGN(数值型表达式)51Testing软件测试网ATt rcW
判断相应数值表达式的正负属性。在SQL server中用+1表示正数,用-1表示负数。例如:select
sign(2),sign(-3.5),返回值为:1 -1.051Testing软件测试网,XGJ K$hup
19. RAND(整型表达式)产生随机数
?GB"oW3IB/^0返回一个位于0和1之间的随机数。整型表达式在这里起着产生随机数的起始值的作用。例如:declare
@counter smallint51Testing软件测试网w6@X4T~6c3^~7d
set @counter=1
2[OZ0M9~ ?*OE0while @counter<5
C)b3^%@o$u3sVU0begin51Testing软件测试网3lA'I|O#b;@#Yy
select
rand(@counter)
o*{SM"U7~&zO~[{0 set
@counter=@counter+1
q;^fr-VP0end51Testing软件测试网:K ^%},E r!yJ|
这个例子产生了个随机数,分别使用1,2,3,4来作各自随机数的起始值。51Testing软件测试网%o4[B9r7Q1j/Y2R
20. ROUND(数值表达式,整数)四舍五入51Testing软件测试网E3dO:e#E h$|[2V!a#A
将数值表达式四舍五入成整数指定精度的形式。在这里,整数可以是正数或负数,正数表示要进行运算的位置在小数点后,反之要运算的位置在小数点前。例如:
]:G? I+{:s+^;y0select
round(888.88,-1),round(888.88,-2),round(888.88,-3),round(888.88,0)返回结果是:890.00 900.001000.00 889.00
gkyv;hs@{y0
eo-b Tf0