1
我想從主字符串中抓取可變長度字符串。 例子:從字符串中間拉取可變長度子字符串
ABC*12*1*name name****XX*123456789~
ABC*12*1*diffname diffname****XX*234567890~
ABC*12*1*diffname2 diffname2***XX*345678901~
我需要拉出的名字命名「, 'diffname diffname', 'diffname2 diffname2'
等從字符串。然後用星號替換名稱之間的''',但是,我不能在字符串的第一個空格中插入,可能會有多個名稱,所以我想要將'*'插入第二個或第三個空間,取決於名稱字符串的長度。
SELECT
CHARINDEX('*1*',data)+3 AS startpos,
CHARINDEX('***',data) AS Endpos,
data
from #t
where data like '%ABC*12*1*%'
這給了我一個可變長度字符串的起點和終點。所以我嘗試:
SELECT SUBSTRING(data,CHARINDEX('*1*',data)+3,CHARINDEX('***',data) -CHARINDEX('*1*',data)+3)
FROM #t
WHERE data like '%ABC*12*1*name%'
但是這給了我
name n name aa*****X
結果集,基本上開始於起點,然後越過終點運行良好。
我在做什麼錯?
是的工作。謝謝!這是在殺我。它非常簡單.. – braindead