MS sql 创建表值函数

这是一个创建表的例子,我觉得非常经典,所以拿出来与大家分享

CREATE FUNCTION [dbo].[SplitToTable]
(
 @RowData nvarchar(2000),
 @SplitOn nvarchar(5)

RETURNS @RtnValue table
(
 Id int identity(1,1),
 Data nvarchar(100)
)
AS 
BEGIN
 declare @Cnt int
 Set @Cnt = 1

 While (Charindex(@SplitOn,@RowData)>0)
 Begin
  Insert Into @RtnValue (data)
  Select
   Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))

  Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
  Set @Cnt = @Cnt + 1
 End
 
 Insert Into @RtnValue (data)
 Select Data = ltrim(rtrim(@RowData))

 Return
END

 

 这个function可以将一个用特殊附后分隔的字符串转化成一个table.

比如这个字符串“test1,test2”,

在数据库中执行select * from dbo.SplitToTable('test1,test2',',')之后,结果如下:

 Id      Data

1        test1

2        test2

今天上传图片出问题,我就直接写了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值