函数
本文非原创
1.函数的分类:
两大类:
(1)系统提供内置的函数
(2)用户自定义的函数 (两种函数都可以用在SQL语句中)
(1)系统函数:
分为:字符串函数 、数学函数 、日期函数 、数据转换函数
A)字符串函数:
它主要用来处理字符型数据,并返回相应的值。
B)数学函数:
主要用来计算数值型字段,通过传递不同的参数来得到不同的值。
例:
ABS(x) 返回x的绝对值
SIGN(x) 当x为负数、零、正数的时候分别返回x的符号-1、0或者1
MOD(x,y) 返回x除以y的余数,跟x%y作用一样
FLOOR(x) 返回小于等于x的最大整数
CEILING(x) 或 CEIL(x) 返回大于等于x的最小整数
POWER(x,y) 返回x的y次方的数值、
ROUND(x) 返回最接近于x的数
ROUND(x,d) 返回小数点数为4的接近于x的数
SQRT(x) 返回x的平方根
C) 日期函数:
来对 datetime 和 smalldatetime 进行不同的处理和运算。
D) 数据转换函数:
要对不同的数据类型 进行运算,必须将其转换为相同类型之后,
才能计算。
转换函数有两种:cast 和 convert
cast函数:
语法: cast (表达式 as 数据类型)
例:select book_addr + cast(book_id as varchar(30)) from YI
convert函数:
它可以指定转换后显示的样式。
语法: convert (数据类型[(长度)],表达式[,style])
(2)用户自定义的函数:
使用 create function来创建:
语法:create function [所有者名称] 函数名称
[{参数名 [as] 数据类型 [=默认值] [……]}]
returns 标量数据类型 ------>返回函数类型
[as]
begin
函数体
return 标量表达式 ----->返回函数体里的数值
end
例:(1)create function dbo.hhh
(@AA datetime , @BB datetime)
returns varchar(10)
as
begin
return datediff(yy,@AA,@BB)
end
select ee=dbo.hhh(出生日期,getdate())from AA
(2)create function dbo.ss
(@tt int ,@ff int)
returns int
as ---->创建
begin
return (@tt+@ff)
end
select yy=dbo.ss(biao_hao,biao_liang) from zxc
---->使用