SQL按指定符号分割字符串函数
2013-12-03 16:14
267 查看
一、SQL分割字符串,返回临时表
方法一:
方法二:
二、SQL分割字符串,返回元素个数
方法一:
create function [dbo].[f_split] ( @c varchar(2000),--需要分割的字符串(例如:1,2,3,4,5 我|和|你) @split varchar(2)--分隔符(例如 , | $) ) returns @t table(col varchar(200))--返回表 as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') end insert @t(col) values (@c) return end
方法二:
create function [dbo].[f_split] ( @str varchar(2000),--需要分割的字符串(例如:1,2,3,4,5 我|和|你) @spliter varchar(2)--分隔符(例如 , | $) ) returns @tb table(ch varchar(200))--返回表 as begin declare @num int,@pos int, @nextpos int set @num = 0 set @pos = 1 while(@pos <= LEN(@str)) begin select @nextpos = CHARINDEX(@spliter, @str, @pos) if(@nextpos = 0 or @nextpos is null) select @nextpos = LEN(@str) + 1 insert into @tb values(RTRIM(LTRIM(SUBSTRING(@str, @pos, @nextpos - @pos)))) select @pos = @nextpos+1 end return end
二、SQL分割字符串,返回元素个数
create function f_GetArrayLength ( @str varchar(2000),--需要分割的字符串(例如:1,2,3,4,5 我|和|你) @split varchar(2)--分隔符(例如 , | $) ) returns int as begin declare @location int declare @start int declare @length int set @str=ltrim(rtrim(@str)) set @location=charindex(@split,@str) set @length=1 while @location<>0 begin set @start=@location+1 set @location=charindex(@split,@str,@start) set @length=@length+1 end return @length end
相关文章推荐
- sql按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
- SQL 创建函数的样例(按指定的符号分割字符串,并返回临时表)
- SQL里类似SPLIT的分割字符串函数
- 【SQL】SQL中通过特殊符号,并指定…
- 类似explode, 但不分割指定符号内的字符.
- 使用(oracle)sql语句采集数据时,数据之间的分割符号要设置成数据中没有的
- SQL里类似SPLIT的分割字符串函数
- SQL里类似SPLIT的分割字符串函数
- SQL里类似SPLIT的分割字符串函数
- JS中split()用法(将字符串按指定符号分割成数组)
- 字符串以指定符号分割
- php中将数组转换为指定符号分割的字符串
- SQL里类似SPLIT的分割字符串函数
- [SQL]实现按照指定分割分分割字符串
- SQL里类似SPLIT的分割字符串函数
- JS中split()用法(将字符串按指定符号分割成数组)
- SQL 用指定的字符,分割字符串
- SQL里类似SPLIT的分割字符串函数
- sql自定义函数:SF_Split,根据指定的分割符,把一个字符串分割成若干条短数据
- SQL里类似SPLIT的分割字符串函数