Заменить функцию в SQL - PullRequest
       5

Заменить функцию в SQL

0 голосов
/ 09 октября 2018

У меня есть образец текста, который содержит «-» или «».Поэтому я хочу оператор sql replace, который заменяет и '-', и '' на ''.

Мой запрос:

SELECT REPLACE('SQL-Tu torial','-',' ','');

Желаемый результат:

SQLTutorial

Ошибка: я получаю ошибку при замене аргументов функции.

Для функции замены требуется 3 аргумента (ов).

Любая помощь?

Ответы [ 4 ]

0 голосов
/ 09 октября 2018

Вы также можете определить таблицу со всеми символами, которые хотите заменить, а затем использовать один оператор replace при выборе из таблицы:

declare @charToReplace table (char_to_replace varchar(1))
declare @tempString varchar(max) = 'SQL-Tu torial'

insert into @charToReplace values ('-'), (' ')

select @tempString = replace(@tempString, char_to_replace, '') 
from @charToReplace

select @tempString as result

Результат:

enter image description here

0 голосов
/ 09 октября 2018

Вы не можете использовать 3 параметра в функции REPLACE.Вместо этого вы можете использовать его дважды, как показано ниже:

SELECT REPLACE(REPLACE('SQL-Tu torial', '-', ''), ' ', '');

Вывод:

SQLTutorial
0 голосов
/ 09 октября 2018

Если вам нужно заменить более двух символов, вы можете использовать TRANSLATE, появившийся в 2017 году. В следующем примере «-», «» и «@» заменяется на «#» с помощью TRANSLATE, а затем «#» заменяется на «"используя REPLACE.Т.е. замените "-", "", "@" и "#" на "".Однако TRANSLATE ничего не покупает, если вы хотите заменить только двух символов.

0 голосов
/ 09 октября 2018

Вложите две функции ЗАМЕНА.

REPLACE(REPLACE())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...