标量用户自定义函数

SQL Server 中的函数与存储过程编写

Meghan Kwartler

IT Consultant

用户自定义函数(UDF)

是什么?

例程:

  • 可接收输入参数
  • 执行操作
  • 返回结果(单个标量或表)

为什么?

  • 可减少执行时间
  • 可降低网络流量
  • 支持模块化编程
SQL Server 中的函数与存储过程编写

什么是模块化编程?

  • 一种软件设计技术
  • 将功能拆分为独立、可替换的模块
  • 允许代码复用
  • 提高代码可读性
SQL Server 中的函数与存储过程编写

食谱中的函数

配方中的模块化编程(第 2 章)4.jpg

SQL Server 中的函数与存储过程编写

烘焙函数的输入参数

配方中的模块化编程(第 2 章)3.jpg

SQL Server 中的函数与存储过程编写

无输入参数的标量 UDF

-- Scalar function with no input parameters
CREATE FUNCTION GetTomorrow()
    RETURNS date AS BEGIN
RETURN (SELECT DATEADD(day, 1, GETDATE()))
END
SQL Server 中的函数与存储过程编写

单参数的标量 UDF

-- Scalar function with one parameter
CREATE FUNCTION GetRideHrsOneDay (@DateParm date)
    RETURNS numeric AS BEGIN
RETURN (
  SELECT 
    SUM(
      DATEDIFF(second, PickupDate, DropoffDate)
    )/ 3600 
  FROM 
    YellowTripData 
  WHERE 
    CONVERT (date, PickupDate) = @DateParm
) END;
SQL Server 中的函数与存储过程编写

双参数的标量 UDF

-- Scalar function with two input parameters
CREATE FUNCTION GetRideHrsDateRange (
  @StartDateParm datetime, @EndDateParm datetime
) RETURNS numeric AS BEGIN RETURN (
  SELECT 
    SUM(
      DATEDIFF(second, PickupDate, DropOffDate)
    )/ 3600 
  FROM YellowTripData 
  WHERE 
    PickupDate > @StartDateParm 
    AND DropoffDate < @EndDateParm
) END;
SQL Server 中的函数与存储过程编写

现在轮到你创建 UDF!

SQL Server 中的函数与存储过程编写

Preparing Video For Download...