2016-08-30 154 views
9

我需要替換字符串中的多個字符。結果不能包含任何'&'或任何逗號。SQL替換字符串中的多個不同字符

我目前有:

REPLACE(T2.[ShipToCode],'&','and') 

但你怎麼把多個值嗎?

非常感謝!

+2

使用另一個'REPLACE':'REPLACE(REPLACE(T2 [ShipToCode], '&', '和'), '', '')' – Lamak

回答

13

你只需要菊花鏈其中:

REPLACE(REPLACE(T2.[ShipToCode], '&', 'and'), ',', '') 
+0

使如此多的意義。謝謝。 – coblenski

3

我們用一個函數來完成類似的,通過串循環的東西,雖然這主要是刪除在「@ValidCharacters」那不是字符串。這對刪除我們不想要的任何東西非常有用 - 通常是非字母數字字符,儘管我認爲我們在字符串中也有空格,引號,單引號和其他一些字符。它真的用於刪除有時會潛入的非打印字符,因此可能不適合您的情況,但可能會給您一些想法。

CREATE FUNCTION [dbo].[ufn_RemoveInvalidCharacters] 
(@str VARCHAR(8000), @ValidCharacters VARCHAR(8000)) 
RETURNS VARCHAR(8000) 
BEGIN 
    WHILE PATINDEX('%[^' + @ValidCharacters + ']%',@str) > 0 
    SET @str=REPLACE(@str, SUBSTRING(@str ,PATINDEX('%[^' + @ValidCharacters + 
']%',@str), 1) ,'') 
    RETURN @str 
END