SQL server拆分字元遇到的問題

2021-10-05 14:47:23 字數 1102 閱讀 5649

create function dbo.string(@str nvarchar(500),@split nvarchar(10)) returns @table table (id int,

val nvarchar(100))

asbegin

declare @star int /分隔符之後的位置/

declare @location int /分隔符的位置/

declare @next int /下乙個分隔符的位置/ declare @id int

set @id=1;

set @str=ltrim(rtrim(@str));

set @location=charindex(@split,@str);

set @star=@location+len(@split);

set @next=charindex(@split,@str,@star) while @next>0

begin

if @next>0

begin

insert into @table values(@id,substring(@str,@location-4,@next-5)) end

else

begin

insert into @table values(@id,substring(@str,@location-4,len(@str)-@location+4))

endset @id=@id+1

set @location=@next

set @star=@location+len(@split)

set @next=charindex(@split,@str,@star)

endreturn

endgo

select * from dbo.string(『宗地東至:曹桃香 宗地南至:路 宗地西至:空地 宗地北至:路』,』:』)*

執行結果是:

我設計這個函式是想把字串中的字元以第一條結果的樣式都分割出來,請問我的**問題出現在**,我琢磨了一天了,沒找到,請大神們幫忙看看

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