2015-06-29 67 views
3

我試圖從給出單詞和開始和結束字符的文本中刪除表達式。 例如:如何刪除給出單詞和開始和結束字符的表達式

http://removecharacter.com?key=keyvalue&product=productid&user=userid 
http://exampleremove.com?id=keyvalue&prodID=productid&login=userid 

我想刪除productid爲我所有的URL(參數名稱不是爲所有網址相同,但參數值是)。

所以我我的網址是:

http://removecharacter.com?key=keyvalue&user=userid 
http://exampleremove.com?id=keyvalue&login=userid 

佈施字是productid和分隔符&&。 我與CHARINDEXLEFTRIGHT功能發揮,但沒有任何成功

+1

_I正在玩CHARINDEX LEFT和RIGHT功能,但任何success_ - >你能告訴我們你試過什麼嗎? –

回答

2

試試這個:

DECLARE @t TABLE(url NVARCHAR(1000)) 

INSERT INTO @t VALUES 
('http://removecharacter.com?key=keyvalue&product=productid&user=userid'), 
('http://exampleremove.com?id=keyvalue&prodID=productid&login=userid'), 
('http://exampleremove.com?id=keyvalue&login=userid') 


;WITH cte AS(SELECT *, 
        REVERSE(url) AS newurl, 
        CHARINDEX('&ditcudorp', REVERSE(url)) pt 
      FROM @t WHERE CHARINDEX('&ditcudorp', REVERSE(url)) > 0) 
UPDATE cte SET url = REVERSE(STUFF(newurl, pt, CHARINDEX('&', newurl, pt + 1) - pt, '')) 

SELECT * FROM @t 

輸出:

url 
http://removecharacter.com?key=keyvalue&user=userid 
http://exampleremove.com?id=keyvalue&login=userid 
http://exampleremove.com?id=keyvalue&login=userid 

cte你在倒車url並找到'%&ditcudorp%'指數。然後,您將使用空字符替換索引'%&ditcudorp%'與下一個'%&%'索引之間的所有字符。

+0

讓我試試這個!告訴你一些事情 – user2112420

+1

'CHARINDEX'也可以代替'PATINDEX'。 – ughai

+0

@ughai,這是合乎邏輯的使用相同的功能。 –

相關問題