アラビア語には、ا(alef)やأ(hamza付きのalef)などの文字があります。
ユーザーはそれらを交換可能に書き込み、それらを交換可能に検索したいと考えています。SQL Serverはそれらを個別の文字として扱います。SQLでそれらを同じ文字として扱うにはどうすればよいですか?
挿入時にأ(hamzaを含むアレフ)をا(alef)に置き換えると考えましたが、アラビア語にはا(alef)やأ(hamefを含むアレフ)以外にも多くの選択肢があります。
私が試した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 أ