SQL SERVER分割字符串
2011-09-24 16:33
375 查看
1、使用指定的字符串分割,返回分割后元素的个数
create function Get_StrLength
(
@str varchar(1024),
@split varchar(10)
)
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
调用方法:select dbo.Get_StrLength('7,5,6,7,a,f,d',',')
2、按指定符号分割字符串,返回分割后指定索引的第几个元素,像数组一样
create function Get_StrOfIndex
(
@str varchar(1024),
@split varchar(10),
@index int
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
--说明:这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
if @location=0
select @location=len(@str)+1
return substring(@str,@start,@location-@start)
end
调用方法:select dbo.Get_StrOfIndex('8,9,3,3,4,5',',',26)
3、结合上边两个函数,返回分割后的元素
create function f_splitstr
(
@SourceSql varchar(8000),
@strSeprate varchar(100)
)
returns @temp table (F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set
@ch=left(@SourceSql,Charindex(',',@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
end
return
end
调用方法:select * from f_splitstr('1,2,3,4,5,6',',')
create function Get_StrLength
(
@str varchar(1024),
@split varchar(10)
)
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
调用方法:select dbo.Get_StrLength('7,5,6,7,a,f,d',',')
2、按指定符号分割字符串,返回分割后指定索引的第几个元素,像数组一样
create function Get_StrOfIndex
(
@str varchar(1024),
@split varchar(10),
@index int
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
--说明:这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
if @location=0
select @location=len(@str)+1
return substring(@str,@start,@location-@start)
end
调用方法:select dbo.Get_StrOfIndex('8,9,3,3,4,5',',',26)
3、结合上边两个函数,返回分割后的元素
create function f_splitstr
(
@SourceSql varchar(8000),
@strSeprate varchar(100)
)
returns @temp table (F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set
@ch=left(@SourceSql,Charindex(',',@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
end
return
end
调用方法:select * from f_splitstr('1,2,3,4,5,6',',')
相关文章推荐
- SQL Server 自定义字符串分割函数
- SQL Server字符串分割
- SQL SERVER 游标与字符串分割
- SQL Server 中分割字符串
- SQL Server 字符串分割 自定义函数 以及执行方式
- SQL Server 游标运用:鼠标轨迹字符串分割
- SQL Server字符串分割
- SQL Server 游标运用:鼠标轨迹字符串分割
- SQL Server自定义字符串分割函数——Split
- sql server字符串分割
- sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件
- mssql sql server 其它系统函数 parsename 点语法字符串分割函数应用简介
- sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件
- SQL Server 分割某表中的字符串字段
- SQL Server字符串分割函数
- SQL SERVER里用SPLIT函数分割字符串
- SQL SERVER 分割字符串等操作(转)
- SQL Server中自定义函数:用指定的分隔符号分割字符串
- sql server的一个字符串分割的表值函数方法
- SQL SERVER分割字符串