sqlserver 分割字串為陣列

2021-06-21 12:27:21 字數 2378 閱讀 3016

---返回字串按照指定分隔符分割後的陣列的長度

create function get_strarraylength (

@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

endreturn @length

end ;

----按照指定的分隔符分割字串為陣列形式,然後獲取指定元素。注: 元素個數從1開始

create function get_strarraystrofindex (

@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

endif @location =0 select @location =len(@str)+1

--這兒存在兩種情況:1、字串不存在分隔符號 2、字串中存在分隔符號,跳出while迴圈後,@location為0,那預設為字串後邊有乙個分隔符號。

return substring(@str,@start,@location-@start)

end ;

---測試。注意:p_get_httprequestdata 為sqlserver獲取http請求資料的儲存過程,在sqlserver處理http請求日誌中有講述。

Sqlserver 字串分割

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

SQL SERVER分割字串

1 使用指定的字串分割,返回分割後元素的個數 create function get strlength str varchar 1024 split varchar 10 returns int asbegin declare location int declare start int decl...

sqlserver 字串分割函式

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