SQL操作——根据分隔符截取字符串
2011-05-27 17:28
411 查看
小小小收藏夹 2009-09-08 09:52:59 阅读558 评论0 字号:大中小 订阅
示例:
传入多个Email地址,通过每个Email地址间的','分隔符,将各Email地址分开。
SELECT * FROM dbo.uf_Split('aa@aa.com,bb@bb.com,cc@cc.com,dd@dd.com',',');
查询结果:
subid autoid
aa@aa.com 1
bb@bb.com 2
cc@cc.com 3
dd@dd.com 4
下面是[uf_Split]方法的具体实现:
CREATE FUNCTION [dbo].[uf_Split](@str VARCHAR(max),@splitchar CHAR(1))
RETURNS @t TABLE(subid VARCHAR(1000),autoid INT) AS
/*
subject:split函数(目前只能对单个字符进行分割,不能以词组方式分割)
author:kq zhou
create date:2009-4-1
*/
BEGIN
DECLARE @substr VARCHAR(max)
SET @substr=@str
DECLARE @i INT,@j INT
SET @j=LEN(REPLACE(@str,@splitchar,REPLICATE(@splitchar,2)))-LEN(@str)--获取分割符个数
IF @j=0
BEGIN
INSERT INTO @t VALUES (@substr,1) --没有分割符则插入整个字串
END
ELSE
BEGIN
SET @i=0
DECLARE @m int
WHILE @i<=@j
BEGIN
IF(@i<@j)
BEGIN
SET @m=CHARINDEX(@splitchar,@substr)-1 --获取分割符的前一位置
INSERT INTO @t VALUES(LEFT(@substr,@m),@i+1)
SET @substr=RIGHT(@substr,LEN(@substr)-(@m+1)) --去除已获取的分割串,得到还需要继续分割的字符串
END
ELSE
BEGIN
INSERT INTO @t VALUES(@substr,@i+1)--对最后一个被分割的串进行单独处理
END
SET @i=@i+1
END
END
RETURN
END
GO
相关文章推荐
- oracle 根据分隔符截取字符串
- SQL截取字符串分隔符中间部门的办法
- SQL 根据指定字符截取字符串Split函数
- SQL根据指定分隔符分解字符串实现步骤
- SQL自定义函数实现字符串截取转化为整型(主要用于对批量数据的操作)
- sql根据'/'截取最后的字符串
- Android(Java) 字符串的常用操作,获取指定字符出现的次数,根据指定字符截取字符串
- sql带分隔符的截取字符串示例
- sql带分隔符的字符串截取
- sql带分隔符的截取字符串示例
- 根据分隔符,拆分字符串t-sql
- SQL: 根据给定的分隔符,分解字符串
- C#根据字节数截取字符串
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 根据分隔符将一个长字符串分割保存到动态数组中(第二种方法)
- sql 截取字符串
- 解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题
- 绑定SqlDataSource的Gridview字符串字段长度截取
- SQL操作字符串及数字汇总