将指定字符串拆分为两个字段的记录集
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
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
相关文章推荐
- DB2字符串按照指定符号进行拆分成多个字段的实现方式
- MySQL批量替换指定字段字符串SQL语句及实例分析
- 常用脚本--将指定的字符串拆分多行数据
- [QualityCenter]设置工作流脚本-根据某字段是否包含指定字符串来判断其他字段的选值
- iOS-截取字符串中两个指定字符串中间的字符串
- 将字符串拆分为记录集
- Oracle中使用游标获取指定数据表的所有字段名对应的字符串
- javascript 根据指定字符把字符串拆分为数组
- C#以逗号拆分字符串,若字段中包含逗号(备注:包含逗号的字段必须有双引号引用)则对其进行拼接处理
- sql 获取指定数据表的所有字段名称的字符串
- sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
- 拆分字段中的字符串
- 找出两个字符串的最长相同字符串及指定字符串频率
- 在DB中查找所有表的字符串字段是否有指定值
- sql server 在当前数据库查询 指定字符串,从而得出 该字符存在在 哪个表哪个字段
- Android String字符串去除指定两个字符串范围内的字符
- 批量替换 MySQL 指定字段中的字符串
- 将输入的字符串按指定的长度进行拆分
- asp.net指定长度截取字段省略(中英文混合字符串)
- Oracle中使用游标获取指定数据表的所有字段名对应的字符串