目標:我有字符串「1234432144」我只想用'10'替換前4個,所以我會得到'1231032144'tsql:如何做一個子串替換?
有沒有辦法在tsql中做到這一點?
到目前爲止,我還拿出TSQL子()函數
substring('1234432144', 4, 2)
其繪製44 ..但是我如何更換現有的字符串中?
如果我在它周圍包裝一個替換函數,它會替換字符串中所有出現的44。
有什麼想法?
在此先感謝。
目標:我有字符串「1234432144」我只想用'10'替換前4個,所以我會得到'1231032144'tsql:如何做一個子串替換?
有沒有辦法在tsql中做到這一點?
到目前爲止,我還拿出TSQL子()函數
substring('1234432144', 4, 2)
其繪製44 ..但是我如何更換現有的字符串中?
如果我在它周圍包裝一個替換函數,它會替換字符串中所有出現的44。
有什麼想法?
在此先感謝。
編輯與paremeterised版本。
DECLARE @myStr VARCHAR(50)
DECLARE @findStr VARCHAR(50)
DECLARE @replaceStr VARCHAR(50)
SET @myStr = '1234432144'
SET @findStr = '44'
SET @replaceStr = '10'
SELECT STUFF(@myStr, CHARINDEX(@findStr, @myStr), LEN(@findStr), @replaceStr)
非常好。爲什麼我沒有想到... – gbn 2010-03-22 16:42:41
當然,如果要求將第一個4替換爲1,將第二個替換爲0,而不是將其替換爲44,則它不會工作。在這種情況下,您需要調用功能兩次。 – 2010-03-22 16:45:17
@gbn:因爲它的星期一:) – 2010-03-22 16:46:32
只更換前2個4的標準是什麼? – gbn 2010-03-22 16:35:34
我只是想要一種方法來替換第一組雙4無論位置,而不是重複整個字符串的替換。謝謝 – phill 2010-03-22 19:55:54