今天一個客戶的技術人員諮詢mssql如何把1個字段裏的"as|dkf|j|haj|skfdkl"分拆爲5個字段輸出?
一般是作爲5條記錄輸出。
而charindex又不支持匹配第n次的出現,只有從哪一個字符開始匹配
寫起來可能是,第n個字段是(n-1)!次的charindex嵌套使用了 ——暈!!!!
需要先建一個函數,改進charindex支持第n次匹配,之後的寫法就會清晰很多
效率不一定高
declare @s varchar(1000)
set @s='1asdk|2jf|3jke|4rjkfje|5wkrfjkwerf'
declare @n int
declare @i int,@p int
set @n=3
set @i=1
set @p=0
while @i<=@n
begin
set @p=charindex('|',@s,@p+1)
set @i=@i+1
end
select @p
這是客戶對自己的老系統的改造,原來是4個字段,現在需要保存10項信息了
不想動表結構