在SQL Server中如何自定义函数

在 SQL Server 中有两种类型的函数用于操作数据库中的数据。

  • 系统定义函数
  • 用户定义函数

SQL Server 提供了用于操作数据的系统定义函数列表。这些系统定义函数是预定义的。我们不能改变这些系统定义函数的功能。在很多情况下,我们需要一个函数来根据我们的需要执行一些特定的任务。有功能被称为用户定义功能。

SQL Server 中有三种类型的用户定义函数。

  • 标量值函数
  • 简单的表值函数
  • 多语句表值函数

标量值函数

标量值函数用于返回任何 T-SQL 数据类型的单个值。

简单的表值函数

使用简单的表值函数返回基于单个 SELECT 语句的表。

多语句表值函数

多语句表值函数用于返回基于多语句的表。

创建onitroademp表的语句

create table oiremp(
id int,
name varchar(32),
age int,
city varchar(32),
salary money
)

在onitroademp表中插入数据的语句

insert into oiremp values (1, 'jack',45,'hangzhou',10000);
insert into oiremp values (2, 'tom',25,'hangzhou',15000);
insert into oiremp values (3, 'bill',43,'shanghai',15000);
insert into oiremp values (4, 'james',36,'hangzhou',15000);
insert into oiremp values (5, 'bob',22,'shanghai',12000);

用于从onitroademp表获取数据的语句

select * from oiremp

创建一个函数

create function fnempid
(@empname varchar(32))
returns int
begin
return (select id from oiremp where name=@empname)
end

在sql server中调用该函数
在此语句中,我们使用函数来从表中获取数据。

select age,city salary from oiremp where id = dbo.fnempid('jack');
select age,city salary from oiremp where id = dbo.fnempid('bob');

创建其他函数示例

create function fnempname
(@id int)
returns varchar
begin
return (select name from oiremp where id = @id)
end

调用我们创建的第二个函数

select name,age,city,salary
from oiremp
where name=dbo.fnempname(1)
日期:2020-06-02 22:17:41 来源:oir作者:oir