函数的定义
在SQL Server 2000 中根据函数返回值形式的不同将用户自定义函数分为三种类型:标量函数(Scalar Function)、内嵌表值函数(Inline Function)、多声明表值函数(Multi-Statement Function)
存储过程与函数的区别
存储过程是用户定义的一系列SQL语句的集合,而函数通常是数据库已定义的方法,具体区别如下:
1.对于存储过程来说可以返回参数,而函数只能返回值或者表对象.
2.函数必须有返回值,存储过程可有可无
3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一部分来调用.
函数的作用
-
能够在select等SQL语句中直接使用自定义函数,存储过程不行。
-
自定义函数可以调用其他函数,也可以调用自己(递归)
-
可以在表列和 CHECK 约束中使用自定义函数来实现特殊列或约束
函数的实现
实例数据库表
Customers
列名 | 数据类型 |
---|---|
ID | int |
Name | nvarchar(50) |
Country | nvarchar(200) |
Sex | bit |
代码实现
Select * from Customers
--函数
--系统函数(自带)
--聚合函数
select count(*) from Customers
select Country, count(*) from Customers
group by Country
Select * from Customers
--定义一个函数,如果参数1返回男,参数0返回女
--自定义函数
create function Conver2Sex(
@sex bit
)
returns varchar(4)
as
begin
declare @rSex varchar(4)
if(@sex=1)
select @rSex='男'
else
select @rSex='女'
return @rSex
end
--函数的调用
select *,dbo.Conver2Sex(Sex) from Customers