SQLServer字串拆分並獲取某分隔符的字串

2021-10-09 20:10:26 字數 1033 閱讀 4967

create function [dbo].[f_splitstr](  

@s varchar(8000), --待分拆的字串

@split varchar(10) --資料分隔符

)returns @re table(

col varchar(max))

as

begin

declare

@splitlen int

-- 取分隔符的長度, 在分隔符後面加乙個字元是為了避免分隔符以空格結束時, 取不到正確的長度

set @splitlen = len(@split + 'a') - 2

-- 如果待分拆的字串中存在資料分隔符, 則迴圈取出每個資料項

while charindex(@split, @s)>0

begin

-- 取第乙個資料分隔符前的資料項

insert @re values(left(@s, charindex(@split, @s) - 1))

-- 將已經取出的第乙個資料項和資料分隔符從待分拆的字串中去掉

set @s = stuff(@s, 1, charindex(@split, @s) + @splitlen, '')

end

-- 儲存最後乙個資料項(最後乙個資料項後面沒有資料分隔符, 故在前面的迴圈中不會被處理)

insert @re values(@s)

return

end

例子:

declare @str varchar(500)

declare @symbol varchar(10)

set @str = '1+2+5.12+12.9'

set @symbol = '+'

select * from dbo.f_splitstr(@str,@symbol)

sqlserver字串拆分

1 sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t sql不支援陣列 2 自己來實現 create function udf split words nvarchar max 原始字串 splitstr varchar 50 分割字元...

sql server拆分字串

parsename是乙個分隔字串的函式,根據 作為分隔符,快速獲取分解後的部分,通常用來拆分ip位址,通過replace函式也可以靈活拆分其他字串。1 拆分ip位址。select parsename 192.168.0.8 1 輸出8select parsename 192.168.0.8 2 輸出...

sqlserver字串拆分 split 方法彙總

sqlserver字串拆分 split 方法彙總 方法0 動態sql法 declare s varchar 100 sql varchar 1000 set s 1,2,3,4,5,6,7,8,9,10 set sql select col replace s,union all select pr...