Замените забавный символ в строке в SQL Server - PullRequest
0 голосов
/ 26 июня 2018

Мне нужна помощь, чтобы заменить забавный символ в столбце в SQL Server,

У меня есть такие данные:

id        itemDesc
----------------------------------------------
1         Ball lock pins/ spring typeáááááá
2         Res 1.5k Ohm û R0805 1%

Если itemDesc содержит á, то заменить его на " "; если он содержит (û), замените его на -. Я использовал charindex, но не изменился вообще, особенно со многими забавными персонажами, такими как id = 1, поэтому, если я использовал charindex, "Штифты с шариковой защелкой / тип пружины" => "Штифты с шариковой защелкой / тип пружины"

Любой подход? спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Если вы используете SQL Server 2017, вы можете использовать TRANSLATE:

SELECT TRANSLATE(itemDesc, 'áû',' -') AS itemDescTidy
FROM table_name;

Это немного более кратко, чем вложенная REPLACE (но на самом деле она идентична, так как это функция "короткой руки").

0 голосов
/ 26 июня 2018

Вы можете использовать REPLACE для замены символов в строке:

SELECT REPLACE(REPLACE(itemDesc, 'á', ' '), 'û', '-') FROM table_name

Если вы хотите UPDATE значение в столбце itemDesc, вы можете использовать следующее:

UPDATE table_name SET itemDesc = REPLACE(REPLACE(itemDesc, 'á', ' '), 'û', '-')

Функция CHARINDEX не может использоваться для замены символов, но для их поиска. Таким образом, вы можете UPDATE или SELECT только строки с этими символами, используя CHARINDEX:

SELECT REPLACE(REPLACE(itemDesc, 'á', ' '), 'û', '-') 
FROM table_name
WHERE CHARINDEX('á', itemDesc) > 0 OR CHARINDEX('û', itemDesc) > 0

UPDATE table_name SET itemDesc = REPLACE(REPLACE(itemDesc, 'á', ' '), 'û', '-')
WHERE CHARINDEX('á', itemDesc) > 0 OR CHARINDEX('û', itemDesc) > 0

демо: http://www.sqlfiddle.com/#!18/6e241/1/0

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