SQl -Function创建函数

本文介绍如何在SQL中创建自定义函数以实现特定需求,通过一个实例展示如何将多个产品名称连接成一个字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      在SQL中系统已为我们提供了很非常丰富的函数:例:聚会函数avg, sum,count,max,min 日期函数:Day,Month,Year等等  为我们日常开发节省很多时间  但是有一些特殊需求的话SQL 也提供自己创建函数的功能下面举一小例子:需求: 某一订单表 编号,订单号,产品名称 要知道 某一订单号的产品名称 名称之间用逗号(,)隔开 如下图:

2010011916582554.jpg

我们创建一个标题函数: StrName 创建过程类似创建存储过程 如下:

2010011917072450.jpg

点击右键创建 表值函数与标量函数 从名称就可以分出来  一个返回表(集合) 标题(单一) 在这个小例子中因为我们只返回名字 所以创建一个标量函数 代码如下:

 

ContractedBlock.gifExpandedBlockStart.gif代码
Create FUNCTION [dbo].[OrderDetailGetStrNameByOrderId]
(
@OrderId int
)
RETURNS varchar(500)
AS
BEGIN
-- Declare the return variable here
declare @StrPassengername varchar(500)
set @StrPassengername=''
select @StrPassengername=@StrPassengername+ Passengername +', ' from OrderDetail where OrderId=@OrderId
select @StrPassengername=substring(@StrPassengername,0,len(@StrPassengername))
-- Return the result of the function
RETURN @StrPassengername

END

 

 

创建好之后在就可以像avg,sum等函数一样的使用  减少代码量  如下

select distinct A.OrderId,
(SELECT [dbo].[OrderDetailGetStrNameByOrderId](A.OrderId)) StrName
 from OrderDetail A

完毕。

 

 

转载于:https://www.cnblogs.com/kaixun001/archive/2010/01/19/1651703.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值