在阿拉伯语中,我们有ا(alef)和أ(带有hamza的alef)之类的字符。
用户可以互换地编写它们,而我们想互换地进行搜索。SQL Server将它们视为单独的字符。如何使SQL将它们视为相同字符?
我曾想在插入时用ا(alef)替换所有أ(alef用hamza),但是我们有很多阿拉伯语的替代品,而不仅仅是ا(alef)和أ(带有hamza的alef)。
我尝试过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 أ