В арабській мові у нас є такі символи, як ا (alef) та أ (alef з hamza).
Користувачі пишуть їх взаємозамінно, і ми хочемо шукати їх взаємозамінно. SQL Server розглядає їх як окремі символи. Як я можу змусити SQL трактувати їх як один і той же символ?
Я думав замінити будь-яке أ (alef з hamza) на ا (alef) при вставці, але в арабській мові у нас є багато альтернатив, не тільки ا (alef) та أ (alef з hamza).
Я спробував 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 أ