В моей базе данных SQL Server есть запись пользователя с акцентированными символами в их фамилии. Имя ȚÎRA
, то есть T-запятая (U + 021A), I-окружность (U + 00CE), R и A.
Независимо от того, что я пытаюсь, я не могу понять, какискать это имя и только это имя. Вот некоторые детали и то, что я пробовал:
Changed database context to 'mdb'.
1> SELECT name, collation_name FROM sys.databases WHERE name = 'mdb'
2> GO
name collation_name
------- ----------------------------------------------------------------------------------------------------------------
mdb Latin1_General_CI_AI
(1 rows affected)
1> SELECT last_name FROM ca_contact WHERE contact_uuid = 0x31BE7DEA327AF1439045420F87E036B2
2> GO
last_name
----------------------------------------------------------------------------------------------------
?IRA
(1 rows affected)
1> SELECT last_name FROM ca_contact WHERE last_name = 'ȚÎRA'
2> GO
last_name
----------------------------------------------------------------------------------------------------
(0 rows affected)
1> SELECT last_name FROM ca_contact WHERE last_name = 'TIRA'
2> GO
last_name
----------------------------------------------------------------------------------------------------
(0 rows affected)
1> SELECT last_name FROM ca_contact WHERE contact_uuid = 0x31BE7DEA327AF1439045420F87E036B2 AND last_name LIKE '%RA'
2> GO
last_name
----------------------------------------------------------------------------------------------------
?IRA
(1 rows affected)
1> SELECT last_name FROM ca_contact WHERE contact_uuid = 0x31BE7DEA327AF1439045420F87E036B2 AND last_name LIKE '__RA'
2> GO
last_name
----------------------------------------------------------------------------------------------------
(0 rows affected)
1> SELECT last_name FROM ca_contact WHERE contact_uuid = 0x31BE7DEA327AF1439045420F87E036B2 AND last_name LIKE '%IRA'
2> GO
last_name
----------------------------------------------------------------------------------------------------
?IRA
(1 rows affected)
1> SELECT last_name FROM ca_contact WHERE contact_uuid = 0x31BE7DEA327AF1439045420F87E036B2 AND last_name LIKE '_IRA'
2> GO
last_name
----------------------------------------------------------------------------------------------------
(0 rows affected)
The? в выводе sqlcmd - только моя консоль, студия управления SQL выводит символ очень хорошо, поэтому я не беспокоюсь об этом.
Я думаю, что я исключил проблему I-roundflex и, как вы можетевидите, я не могу сделать так, чтобы подстановочный знак одного символа попал в Т-запятую, и при этом я не могу искать его в буквальной форме или полагаясь на нечувствительность к акценту. Я не могу коснуться сортировки, поскольку приложение, которое использует эти данные, требует сортировки, показанной выше.
Я обнаружил, что T-запятая не работает, умлауты, ударения во французских именах и дажеC-cedillas работают просто отлично. Есть ли способ заставить поиски попасть в Т-запятую? Это вызывает проблемы у сотрудников службы поддержки, поскольку они не находят пользователя с обычным поиском, и мне интересно, нужно ли мне просто перебивать данные и заменять все не-ASCII-символы на ASCII, чтобы это работало. Было бы очень жаль, поскольку мы наконец начали использовать данные, которые не были тупыми, и были рады видеть, что «обычные» акценты, о которых я говорил, были обработаны без проблем.