Запросы на совпадения ae в SQL Server / LINQ to SQL
Когда я пытаюсь бежать...
SELECT * FROM Users WHERE Username = 'ae'
он возвращает совпадения, где имя пользователя æ (символ пепла).
Мне было интересно, есть ли способ поддержать таких персонажей, как пепельный персонаж, но получить точное совпадение с тем, что я ищу.
Я хотел бы найти ae и получить только ae, а не ae и æ
Я использую SQL Server 2008 и SQL Server 2008 R2.
2 ответа
Решение
Похоже, этого не происходит с сопоставлениями SQL.
;with Users As
(
select 'æ' as Username UNION ALL SELECT 'ae'
)
SELECT *
FROM Users WHERE Username = 'ae' collate SQL_Latin1_General_CP1_CI_AS
Вы можете использовать порядковый порядок сортировки для сравнения. Например:
SELECT *
FROM Users
WHERE Username = 'ae' COLLATE Latin1_General_BIN