Auf Arabisch haben wir Zeichen wie ا (Alef) und أ (Alef mit Hamza).
Benutzer schreiben sie austauschbar und wir möchten sie austauschbar suchen. SQL Server behandelt sie als separate Zeichen. Wie kann ich SQL veranlassen, sie als dasselbe Zeichen zu behandeln?
Ich dachte, beim Einfügen jedes أ (Alef mit Hamza) durch ا (Alef) zu ersetzen, aber wir haben viele Alternativen in arabischer Sprache, nicht nur ا (Alef) und أ (Alef mit Hamza).
Ich habe es versucht Arabic_CI_AS
und Arabic_CI_AI
aber das löst das Problem nicht.
Hier ist ein Skript, um das Problem neu zu generieren:
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'ا%';
Das Ergebnis ist:
ArabicChars
احمد
(1 row(s) affected)
Das gewünschte Ergebnis wären beide Zeilen, die wir eingefügt haben.
ا and أ