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
*
from
dbo.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...