打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQLServer 表值函数与标量值函数 定义与调用

SQLServer 表值函数与标量值函数 定义与调用

       写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型。

标量值函数创建:

Create FUNCTION [dbo].[GetBidDates]
(
        @ID INT
)
RETURNS NVARCHAR(4000)
AS
BEGIN
        DECLARE @Names NVARCHAR(4000)
 
        IF EXISTS(SELECT * FROM BiddingSection WHERE BiddingInfoID = @ID HAVING COUNT(*) > 1)
                     SELECT @Names = COALESCE(@Names + ' ' + '[' + SectionName + ' ' + CONVERT(NVARCHAR(20),BiddingDate,120) + ']',
                                 '[' + SectionName + ' ' + CONVERT(NVARCHAR(20),BiddingDate,120) + ']',@Names)
                   FROM BiddingSection
                   WHERE BiddingInfoID = @ID
       ELSE
                   SELECT @Names = CONVERT(VARCHAR,BiddingDate,120)
                    FROM BiddingSection
                     WHERE BiddingInfoID = @ID

 RETURN @Names
END


表值函数创建:

Create Function [dbo].[GetAllGoods]

(
        @ID
)
Returns Table
As
 Return
(
    SELECT TOP 1
            @ID  OrderID,
             DeptNames = stuff((select ',' + DeptName from Department A,DeptOrderDetail B WHERE  A.ID=B.DeptID AND B.OrderID=@ID  for xml path('')) , 1 , 1 , '')
     From Department
)

  其中标量值函数调用的时候方式如下:select dbo.GetBidDates(001)注意:函数前边一定要加上所有者:dbo

       表值函数调用方法如下:select * from GetAllGoods()

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL Server UDF用户自定义函数
SQLServer:用户自定义数据类型用法
SqlServer Split功能函数
表值函数
《SQLServer数据库应用基础教程》第十一章SQLServer中的程序设计
sql 表值函数与标量值函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服