用户自定义函数

用户自定义函数(UDF,user-defined function)的目的是要封装计算的逻辑处理,有可能需要基于输入的参数,并返回结果。

SQL Server 支持两种用户定义函数:标量UDF和表值UDF。标量UDF只返回单个数据值。而表值UDF则返回一个表。使用UDF 的优点之一是可以在查询中集成UDF。对于查询中返回单个值的表达式,在其出现的位置上,也能够使用标量UDF(例如,在SELECT列表中)。表值UDF只能在查询的FROM子句中出现。

CREATE FUNCTION dbo.fn_age

(

  @birthdate AS DATETIME,

  @eventdate AS DATETIME

)

RETURNS INT

AS

BEGIN

  RETURN

    DATEDIFF(year,@birthdate,@eventdate)

      - CASE WHEN 100*MONTH(@eventdate)+DAY(@eventdate)

        < 100* MONTH(@birthdate) + DAY(@birthdate)

      THEN 1 ELSE 0

    END

END

posted @ 2014-06-22 11:09  守护之翼  阅读(304)  评论(0编辑  收藏  举报