SQL Server SQl Function 创建函数的解决办法

2022-11-12 09:35:04
内容摘要
这篇文章主要为大家详细介绍了SQL Server SQl Function 创建函数的简单示例,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记! 在SQL中系统
文章正文

这篇文章主要为大家详细介绍了SQL Server SQl Function 创建函数的简单示例,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

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

【图片暂缺】

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

【图片暂缺】

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

代码如下:


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

完毕。

注:关于SQL Server SQl Function 创建函数的简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!