SQL Server - поиск строки с международными символами, используя предложение LIKE - PullRequest
3 голосов
/ 07 апреля 2010

У меня есть поле «Описание», которое может содержать описания продуктов с любыми символами Юникода. Если я ищу описание, которое содержит международный символ с условием LIKE (слово, в котором выполняется поиск, не имеет международного символа), я получаю следующие результаты:

Пример: GEWÜRZTRAMINER является одним из описаний. Когда я делаю:

Select * from table where Description LIKE '%GEWURZTRAMINER%', it retrieves the entry.

Когда я делаю:

Select * from table where Description LIKE '%GEWURZ%', the entry is not retrieved.

(Примечание: условие поиска не включает Ü, но имеет U)

Есть ли способ обойти это, чтобы я мог также извлечь с помощью '% GEWURZ%'?

Ответы [ 2 ]

5 голосов
/ 07 апреля 2010

Для стандартного болота varchar вы должны привести к сортировке без учета акцента

Select 1 where 'GEWÜRZTRAMINER' COLLATE LATIN1_GENERAL_CI_AI LIKE '%GEWURZTRAMINER%'

Не должно быть никакой разницы между вызовами, хотя для предоставленного вами SQL.

1 голос
/ 07 апреля 2010

Это будет зависеть от порядка сортировки для столбца. Это должно работать, если вы используете, например, SQL_Latin1_General_CP1_CI_AI

...