SQL Server将字符串变成表的一列

 

/*------函数[fn_StrToTable]:输入字符串返回一个表。【holyrong20080529】--------------------
------当应用程序中传入的In条件是字符串时,可将该字符串转换为数据集,从而直接作为In条件-----
------(如输入“123,124,234”则返回有三行数据的表,这三行分别为123 124 234)---
------【输入值】:字符串,用“,”分隔多个字符串-------------------------------
------【返回值】:表,该表只有一列,行数是字符串中逗号隔开的子字符串个数。----***/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_StrToTable]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fn_StrToTable]
GO
Create Function fn_StrToTable(@str varchar(1000))
	Returns @tableName Table
	(
		columnName varchar(50)
	)
As
Begin
	set @str = @str+','
	Declare @insertStr varchar(50) --截取后的第一个字符串
	Declare @newstr varchar(1000)  --截取第一个字符串后剩余的字符串
	set @insertStr = left(@str,charindex(',',@str)-1)
	set @newstr = stuff(@str,1,charindex(',',@str),'')
	Insert @tableName Values(@insertStr)
	while(len(@newstr)>0)
	begin
		set @insertStr = left(@newstr,charindex(',',@newstr)-1)
		Insert @tableName Values(@insertStr)
		set @newstr = stuff(@newstr,1,charindex(',',@newstr),'')
	end
	Return
End
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值