sqlserver 标量函数例子

Posted 雯烈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 标量函数例子相关的知识,希望对你有一定的参考价值。

标量函数用于传入多个参数返回一个结果

 

 

1.定义

 1 use AdventureWorks2014;
 2 go
 3 if exists(select * from sys.objects where name=\'udf_GET_AssignedEquipment\')
 4 drop function dbo.udf_GET_AssignedEquipment;
 5 go
 6 create function dbo.udf_GET_AssignedEquipment
 7 (
 8     @Title nvarchar(50),
 9     @HireDate datetime,
10     @SalariedFlag bit
11 )
12 RETURNS nvarchar(50)
13 as
14 begin
15     DECLARE @EquipmentType nvarchar(50)
16     IF @Title LIKE \'Chief%\' OR
17         @Title LIKE \'Vice%\' OR
18         @Title = \'Database Administrator\'
19         begin
20             SET @EquipmentType = \'PC Build A\' ;
21         end
22     IF @EquipmentType IS NULL AND @SalariedFlag = 1
23         begin
24             SET @EquipmentType = \'PC Build B\' ;
25         end
26     IF @EquipmentType IS NULL AND @HireDate < \'1/1/2002\'
27         begin
28             SET @EquipmentType = \'PC Build C\' ;
29         end
30     IF @EquipmentType IS NULL
31         begin
32             SET @EquipmentType = \'PC Build D\' ;
33         end
34     RETURN @EquipmentType ;
35 end
36 go

2.使用

1 Use AdventureWorks2014; 
2 GO
3 SELECT PC_Build = dbo.udf_GET_AssignedEquipment(JobTitle, HireDate, SalariedFlag),
4 Employee_Count = COUNT(*)
5 FROM HumanResources.Employee
6 GROUP BY dbo.udf_GET_AssignedEquipment(JobTitle, HireDate, SalariedFlag)
7 ORDER BY dbo.udf_GET_AssignedEquipment(JobTitle, HireDate, SalariedFlag);

 

以上是关于sqlserver 标量函数例子的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server中的标量函数中传递列名[关闭]

如何在 MS Access VB 中访问 SQL Server 标量函数

SQL Server - 将标量函数转换为表值函数

sqlserver自定义函数

执行标量返回 null

从 sql 程序调用用户定义的标量函数