2016-08-30 2 views
9

Мне нужно заменить несколько символов в строке. Результат не может содержать «&» или любые запятые.SQL Замените несколько разных символов в строке

я в настоящее время:

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

Но как вы положили несколько значений в?

Большое спасибо!

+2

использование другого '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 
Смежные вопросы