Em árabe, temos caracteres como ا (alef) e أ (alef com hamza).
Os usuários os escrevem de forma intercambiável e queremos pesquisá-los de forma intercambiável. O SQL Server os trata como caracteres separados. Como posso fazer o SQL tratá-los como o mesmo caractere?
Pensei em substituir qualquer أ (alef com hamza) por ا (alef) na inserção, mas temos muitas alternativas no idioma árabe, não apenas ا (alef) e أ (alef com hamza).
Eu tentei Arabic_CI_AS
e Arabic_CI_AI
mas isso não resolve o problema.
Aqui está um script para regenerar o problema:
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'ا%';
O resultado é:
ArabicChars
احمد
(1 row(s) affected)
O resultado desejado seria as duas linhas que inserimos.
ا and أ