您的位置:首页 > 其它

将指定字符串拆分为两个字段的记录集

2006-01-06 15:58 267 查看
CREATE FUNCTION dbo.f_split_strings(@s varchar(8000),@mc varchar(10),@dc varchar(10))
RETURNS @t TABLE(s1 varchar(4000),s2 varchar(4000))
AS
BEGIN
--作者:pbsql
--将指定字符串@s以字符串@mc为分隔拆分,再将拆分后的字符串按@dc拆分,最后得到记录集
DECLARE @string varchar(8000),@i int,@j int,@ml int,@dl int
SELECT @i=CHARINDEX(@mc,@s),@ml=LEN(@mc),@dl=LEN(@dc)
WHILE @i>0
BEGIN
SELECT @string=LEFT(@s,@i-1),@j=CHARINDEX(@dc,@string)
INSERT @t(s1,s2)
VALUES(LEFT(@string,@j-1),SUBSTRING(@string,@j+@dl,LEN(@string)-@j-@dl+1))
SELECT @s=STUFF(@s,1,@i+@ml-1,''),@i=CHARINDEX(@mc,@s)
END
SELECT @string=@s,@j=CHARINDEX(@dc,@string)
INSERT @t(s1,s2)
VALUES(LEFT(@string,@j-1),SUBSTRING(@string,@j+@dl,LEN(@string)-@j-@dl+1))
RETURN
END
GO
调用示例:
SELECT * FROM dbo.f_split_strings('1,a;2,b;3,c',';',',')
返回:
s1 s2
1 a
2 b
3 c
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: