В арабском языке у нас есть такие символы, как ا (алеф) и أ (алеф с хамзой).
Пользователи пишут их взаимозаменяемо, и мы хотим искать их взаимозаменяемо. SQL Server обрабатывает их как отдельные символы. Как я могу заставить SQL рассматривать их как один и тот же символ?
Я подумал заменить любой أ (алеф с хамзой) на ا (алеф) при вставке, но у нас есть много альтернатив в арабском языке, не только ا (алеф) и أ (алеф с хамза).
Я попробовал Arabic_CI_AS
и , Arabic_CI_AI
но это не решает проблему.
Вот скрипт для восстановления проблемы:
CREATE TABLE [dbo].[TestTable] (
[ArabicChars] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED
(
[ArabicChars] ASC
)
) ON [PRIMARY];
INSERT INTO TestTable values (N'احمد');
INSERT INTO TestTable values (N'أحمد');
SELECT *
FROM TestTable
WHERE ArabicChars like N'ا%';
Результат:
ArabicChars
احمد
(1 row(s) affected)
Желаемым результатом были бы обе строки, которые мы вставили.
ا and أ