2014-02-20 37 views
0

我有一種情況,我需要用存儲過程中的單個文字替換整個文本和方括號。 (Iam使用Sql Server 2012)。sql查詢括號 - 用單個字符替換所有文本

如: - >

讓我們考慮,我有一個文本SAN [123456dd]文本

我只是想取代方括號內的所有文字和方括號本身與其他性格特徵說'X'

在這裏,我的最終結果應該是sanXtext

任何人都可以幫助我解決這個問題嗎?

+0

你google一下? http://technet.microsoft.com/en-us/library/ms186862.aspx – Blorgbeard

+0

谷歌爲「SQL REPLACE」 – RBarryYoung

+0

你必須考慮嵌套的[],或者如果完整的文本不在單行內的程序跨多行搜索?如果是,那麼你也想看看CHARINDEX函數。 –

回答

1
DECLARE @String VARCHAR(1000) = 'san[123456dd]text' 

SELECT LEFT(@String, CHARINDEX('[', @String)-1) +'X' + 
     RIGHT(@String, CHARINDEX(']', REVERSE(@String))-1) 

Result: sanXtext 
+0

謝謝..它的工作 – user3224778

+0

@ user3224778不客氣,很高興它幫助你現在可以接受答案:) –

+0

可能會在'sam [abc]好[123]文本' –

0
SELECT REPLACE(col,SUBSTRING(col, (CHARINDEX('[',col)), CHARINDEX(']',col) - 
      (CHARINDEX('[', col)) + Len(']')),'x') 
    FROM tableName 

Fiddle