SQl Function 创建函数实例介绍

在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

完毕。

时间: 2024-10-27 00:39:15

SQl Function 创建函数实例介绍的相关文章

SQl Function 创建函数实例介绍_MsSql

 在SQL中系统已为我们提供了很非常丰富的函数:例:聚会函数avg, sum,count,max,min 日期函数:Day,Month,Year等等  为我们日常开发节省很多时间  但是有一些特殊需求的话SQL 也提供自己创建函数的功能下面举一小例子:需求: 某一订单表 编号,订单号,产品名称 要知道 某一订单号的产品名称 名称之间用逗号(,)隔开 如下图: 我们创建一个标题函数: StrName 创建过程类似创建存储过程 如下: 点击右键创建 表值函数与标量函数 从名称就可以分出来  一个返回

sql 2005 字符函数实例与应用实例

sql 2005 字符函数实例与应用实例 use demo go /* 将表code的列string中的值提取放到record表中 string 中字符类型为 dsddddd,2222222,222221,3 其中最后一位为标记对于record表中的biaoji 前面的以','分割的是值对应record表中value */ go drop proc proc_split_code go create proc proc_split_code as begin set nocount on dec

SQL查询排名函数实例

在实际开发中经常会遇到计算某个字段的排名的情况 如下表:totak_sales 现在又如此要求:按sales的逆序排序,要求添加一个sales_rank字段,显示排名顺序 方法: 复制代码 代码如下:SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name

SQL Function 自定义函数详解_MsSql

目录 产生背景(已经有了存储过程,为什么还要使用自定义函数) 发展历史 构成 使用方法 适用范围 注意事项 疑问 内容 产生背景(已经有了存储过程,为什么还要使用自定义函数) 与存储过程的区别(存在的意义): 1.     能够在select等SQL语句中直接使用自定义函数,存储过程不行. 2.     自定义函数可以调用其他函数,也可以调用自己(递归) 3.     可以在表列和 CHECK 约束中使用自定义函数来实现特殊列或约束 4.       自定义函数不能有任何副作用.函数副作用是指对

SQL Function 自定义函数详解

目录 产生背景(已经有了存储过程,为什么还要使用自定义函数) 发展历史 构成 使用方法 适用范围 注意事项 疑问 内容 产生背景(已经有了存储过程,为什么还要使用自定义函数) 与存储过程的区别(存在的意义): 1.     能够在select等SQL语句中直接使用自定义函数,存储过程不行. 2.     自定义函数可以调用其他函数,也可以调用自己(递归) 3.     可以在表列和 CHECK 约束中使用自定义函数来实现特殊列或约束 4.       自定义函数不能有任何副作用.函数副作用是指对

SQL的SUBSTR()函数使用介绍_MsSql

SUBSTR函数是用来截取数据库某一列字段中的一部分. 在各个数据库的函数名称不一样(真是蛋疼,后发明的数据库难道不能同先发明的一样吗?) 复制代码 代码如下: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) ; 常用的方式是: SBUSTR(str,pos); 就是从pos开始的位置,一直截取到最后. 还有一种比较常用的是: 复制代码 代码如下: SUBSTR(str,pos,len); 这种表

SQL的SUBSTR()函数使用介绍

SUBSTR函数是用来截取数据库某一列字段中的一部分. 在各个数据库的函数名称不一样(真是蛋疼,后发明的数据库难道不能同先发明的一样吗?) 复制代码 代码如下: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) ; 常用的方式是: SBUSTR(str,pos); 就是从pos开始的位置,一直截取到最后. 还有一种比较常用的是: 复制代码 代码如下: SUBSTR(str,pos,len); 这种表

SQL查询排名函数实例_MsSql

在实际开发中经常会遇到计算某个字段的排名的情况 如下表:totak_sales 现在又如此要求:按sales的逆序排序,要求添加一个sales_rank字段,显示排名顺序 方法: 复制代码 代码如下: SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name

进程创建函数fork()、vfork() ,以及excel()函数

一.进程的创建步骤以及创建函数的介绍 1.使用fork()或者vfork()函数创建新的进程 2.条用exec函数族修改创建的进程.使用fork()创建出来的进程是当前进程的完全复制,然而我们创建进程是为了让新的进程去执行新的程序,因此,就需要用到exec函数族对创建出来的新进程进行修改,让他拥有和父进程不一样的东西,修改后就可以执行新的程序,当然,修改后的子进程包含了要执行程序的信息. 在Linux中,fork()和vfork()就是用于创建进程的两个函数,他们的相关信息如下: 创建进程函数: