sqlserver字串拆分

2021-06-20 23:44:24 字數 1226 閱讀 4847

1、sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t-sql不支援陣列

2、自己來實現

create function udf_split

( @words nvarchar( max )/*原始字串*/

, @splitstr varchar (50) /*分割字元*/

)returns @result_table table

([word] nvarchar( max ) null /*定義乙個word列*/

)begin

declare @tempstr nvarchar( max )

/*@words有包含分割字元就一直執行迴圈*/

while (charindex(@splitstr,@words)>0)

begin

/*取出最前面的word*/

set @tempstr= substring (@words,1,charindex(@splitstr,@words)-1)

insert into @result_table (word) values ??(@tempstr)

/*把最前面的word加上分割字元後,取代為空字串再指派回給@words*/

set @words = replace (@words,@tempstr+@splitstr, '' )

end /* end while*/

/*@words有值但沒有分割字元,表示此為最後乙個word*/

if(len(rtrim(ltrim(@words)))>0 and charindex(@splitstr,rtrim(ltrim(@words)))=0) 

begin

set @tempstr=@words /*取出word*/

insert into @result_table (word) values ??(@tempstr)

end /* end if*/

return /*回傳table 變數*/

end

3、呼叫

select*fromdbo.udf_split(n'hello,world,shadow,你好',',')

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

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 print sql exec sql if exist...