SQL SERVER分割字串

2021-08-27 10:51:19 字數 2058 閱讀 3583

1、使用指定的字串分割,返回分割後元素的個數

create function get_strlength

(@str varchar(1024),

@split varchar(10)

)returns int

asbegin

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

endreturn @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)

asbegin

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))

asbegin

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),'')

endreturn

end呼叫方法:select * from f_splitstr('1,2,3,4,5,6',',')

Sqlserver 字串分割

字串分割,返回字串按指定分割符分割後長度 使用 select dbo.fun get strarraylength 1,2,3,4 create function dbo fun get strarraylength str varchar 1024 要分割的字串 split varchar 10 ...

sqlserver 字串分割函式

create function split charstring nvarchar 4000 字串 separator char 1 分割符 returns tb temp table string nvarchar 4000 asbegin declare beginindex int,separ...

SQLserver 字串分割函式

create function get strarraystrofindex str varchar 1024 要分割的字串 split varchar 10 分隔符號 index int 取第幾個元素 returns varchar 1024 as begin declare location i...