sql server 自定义函数
自定义函数
如果RETURNS 子句指定一种标量数据类型,则函数为标量值函数
如果RETURNS 子句指定 TABLE,则函数为表值函数
如果RETURNS 子句指定的TABLE 不附带列,则该函数为内嵌表值函数
如果RETURNS 子句指定的TABLE 类型带有列及其数据类型,则该函数是多语句表值函数
标量值函数
返回的结果只是一个标量,返回的结果就是一种类型的一个值
调用方法(select SUMRESULT(6443) as result)
--标量值函数(CREATE function 函数名(@参数名 类型)) CREATE function SUMRESULT(@USER_ID VARCHAR(250)) --返回值数据类型(Returns 返回值数据类型) Returns varchar(250)
AS
Begin --声明变量或返回值 Declare @ret varchar(250) --给变量赋值 set @ret='' --给变量赋值 select @ret=SUM(HOLIDAYS) FROM JKZX_NXJ WHERE USER_ID=@USER_ID--参数 --返回值数据 return @ret End
--标量值函数 create function GetSum (@num1 int , @num2 int )
Returns int as begin declare @return int set @return = @num1 + @num2 return @return end select dbo.GetSum(1,3)
内联表值函数
内联表值函数返回的是表数据,它返回的是一个表内表值型函数没有由BEGIN-END语句括起来的函数体
调用方法(SELECT * FROM DSOA.CATABLR(6443))
--表值函数(CREATE function 函数名(@参数名 类型)) CREATE function CATABLR(@User_id varchar(250)) --返回表数据类型 Returns TABLE AS --返回查询的表数据 Return( --SELECT 语句 SELECT [ID],[YEAR],[CREATEDATE],[USER_ID],[DEPT] FROM JKZX_NXJ WHERE USER_ID=@USER_ID ) GO
多语句表值函数
多语句表值函数跟内联表值函数都是表值函数,它们返回的结果都是Table类型
多语句表值函数顾名思义,就是可以通过多条语句来创建Table类型的数据。
这里不同于内联表值函数,内联表值函数的返回结果是由函数体内的SELECT语句来决定。
而多语句表值函数,则是需要指定具体的Table类型的结构。也就是说返回的Table,已经定义好要哪些字段返回。所以它能够支持多条语句的执行来创建Table数据。
....
sql代码 还未涉及到略
如果您也觉得不错,那就顶下,关注下,谢谢您的支持!!
当大部分人都在关注你飞的高不高时,只有少部分人关心你飞的累不累。