Поиск SQL Server для "ὡ" (U + 1F61) соответствует всем?

Один из наших инженеров QA наткнулся на это:

    SELECT DisplayName
    FROM Products
    WHERE (DisplayName LIKE N'%ὡ%')

Этот запрос соответствует 100% значений DisplayName, хотя ни один из них не содержит "ὡ" (U + 1F61). DisplayName - nvarchar (max). Мы хотели бы предотвратить это. Мысли?

Ответ 1

Да, похоже, что Мартин Смит был прав относительно группы сортировки 100. Пример ниже (опробованный в 2014 году) доказывает, что:

declare @t table (
    ValueSQL nvarchar(20) collate SQL_Latin1_General_CP1_CI_AS,
    ValueWin nvarchar(20) collate Latin1_General_CI_AS,
    ValueWin100 nvarchar(20) collate Latin1_General_100_CI_AS
);

insert into @t
select 'Abc', 'Abc', 'Abc';

SELECT case when t.ValueSQL like N'ὡ%' then t.ValueSQL end as [MatchSQL],
    case when t.ValueWin like N'ὡ%' then t.ValueWin end as [MatchWin],
    case when t.ValueWin100 like N'ὡ%' then t.ValueWin100 end as [MatchWin100]
FROM @t t;