Похоже, что независимо от его положения, смайлики пу пропускаются.Например, ниже возвращается каждая строка:
SELECT *
FROM (VALUES(N'someString?'),
(N'?someString'),
(N'some?String'),
(N'some?String?')) V(S)
WHERE S = N'someString';
Если вы используете двоичное сопоставление, этого не происходит:
SELECT *
FROM (VALUES(N'someString?'COLLATE SQL_Latin1_General_CP850_BIN),
(N'?someString'COLLATE SQL_Latin1_General_CP850_BIN),
(N'some?String'COLLATE SQL_Latin1_General_CP850_BIN),
(N'some?String?'COLLATE SQL_Latin1_General_CP850_BIN)) V(S)
WHERE S = N'someString';
Если SQL Server имеет дело с этими символами Unicode / emojiважно, тогда двоичная сортировка, вероятно, будет вашим лучшим выбором.