Trong tiếng Ả Rập, chúng ta có các ký tự như: (alef) và (alef với hamza).
Người dùng viết chúng thay thế cho nhau và chúng tôi muốn tìm kiếm chúng thay thế cho nhau. SQL Server coi chúng là các ký tự riêng biệt. Làm cách nào để tạo SQL xử lý chúng như cùng một ký tự?
Tôi đã nghĩ sẽ thay thế bất kỳ (alef bằng hamza) bằng cách chèn (alef) khi chèn nhưng chúng tôi có rất nhiều lựa chọn thay thế trong ngôn ngữ Ả Rập không chỉ là ((alef) và أ (alef bằng hamza).
Tôi đã thử Arabic_CI_AS
và Arabic_CI_AI
điều đó không giải quyết được vấn đề.
Đây là một kịch bản để tạo lại vấn đề:
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'ا%';
Kết quả là:
ArabicChars
احمد
(1 row(s) affected)
Kết quả mong muốn sẽ là cả hai hàng chúng tôi đã chèn.
ا and أ