Заменить персонажа другим - PullRequest
1 голос
/ 11 октября 2019

У меня есть таблица с определенными строками, содержащими Œ в тексте, и я хочу найти и заменить их на £, но она также находит текст с OE, который я не хочу, чтобы он находил.

В данный момент я все отбросил и просто пытаюсь найти положение Œ в строке символов.

Я пробовал следующие 3 строки, но все они возвращают один и тот же результат.

SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9')

SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9' COLLATE Latin1_General_CS_AI )

SELECT CHARINDEX(CHAR(140), cast('1234OE7Œ9' as varchar(20)) COLLATE Latin1_General_CS_AI)

Все приведенные выше результаты возвращают 5, что является начальной позицией OE, но я хочу, чтобы он только нашелзаписи, которые содержат Œ, который находится в позиции 8 в строке. Символ 140 - Œ

1 Ответ

0 голосов
/ 11 октября 2019

Я попробовал ваше первое утверждение:

SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9')

в базе данных с сопоставлением SQL_Latin1_General_CP1_CI_AS: он вернул 8.

Так что, вероятно, это утверждение должно работать:

SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9' COLLATE SQL_Latin1_General_CP1_CI_AS)

Результаты:

enter image description here

...