Заменить НЕ работает! - PullRequest
       11

Заменить НЕ работает!

1 голос
/ 20 октября 2010

У меня есть столбец со значениями, которые имеют неправильный символ ?.Теперь я хочу изменить его на символ b.Для этого я использую следующее утверждение:

SELECT REPLACE(name,'?','b') from contacts;

Но когда я этого не делаю, ничего не происходит, оно возвращает значение с ?.

Что я делаю неправильно?Как я могу заменить это?

Ответы [ 4 ]

4 голосов
/ 20 октября 2010

Вы действительно пытаетесь изменить значения в таблице? В этом случае вам нужно будет сделать UPDATE:

UPDATE contacts
SET name = Replace(name,'?','b')

В противном случае, если вы просто пытаетесь получить измененное значение, ваш синтаксис должен работать нормально. (Я проверил это, ? не нужно избегать или что-то еще):

SELECT name, Replace(name,'?','b') as Fixed
FROM contacts
4 голосов
/ 20 октября 2010

Другая возможность, которую я видел раньше, состоит в том, что персонаж выглядит как обычный старый знак вопроса ASCII, но это не совсем так. На самом деле это другой персонаж. Я бы выделил текст и вставил его в Блокнот, а затем скопировал и вставил в свой запрос.

1 голос
/ 30 ноября 2016

Если тип данных столбца имя равен NVARCHAR, следует использовать префикс N. Типы NVARCHAR и VARCHAR имеют разницу в юникоде. Посмотрите на эту ссылку для получения дополнительной информации о различиях между NVARCHAR и VARCHAR типами.

SELECT REPLACE(name,N'?', N'b') from contacts;
0 голосов
/ 20 октября 2010

Попробуйте это

update contacts set name=replace(name, '?', 'b')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...