阿拉伯名字查询 returns 多于一个结果
Arabic name query returns more then one results
我在使用特定的阿拉伯语名称进行简单的 select 查询时遇到这样的情况,例如下面的“رفع٩”查询 returns 不止一个结果。它是正确的 returns“روع٩”,但它也是 returns“رفعت”。
SELECT * FROM Table where ArabicName = N'رفعة'
另外两种情况我也遇到过。当使用“حيا٩”查询时,它 returns “حياة” 和 “حيات”。
当用“نعمstra”查询时,它 returns “نعمstra” 和 “نعمت”.
我在网上搜索了答案,但没有成功。
有没有人遇到过这种情况?
我通过在查询中添加以下内容解决了这个问题:COLLATE Arabic_100_CI_AS
SELECT * FROM Table where ArabicName COLLATE Arabic_100_CI_AS = N'رفعة'
注意!如果不在归类规范中指定 _100_
,它就无法工作。
您的问题与排序规则有关,您应该了解这意味着什么,尤其是排序规则中的最后几个字母 Arabic_100_CI_AS
。
CI
表示不区分大小写,您也可以选择设置 CS
表示区分大小写
AS
表示区分重音,与选项 AI
相同,表示不区分重音
好吧,这个排序规则可以在服务器、数据库、列级别上设置,或者您可以在语句末尾添加 COLLATE
命令进行显式搜索。
我在使用特定的阿拉伯语名称进行简单的 select 查询时遇到这样的情况,例如下面的“رفع٩”查询 returns 不止一个结果。它是正确的 returns“روع٩”,但它也是 returns“رفعت”。
SELECT * FROM Table where ArabicName = N'رفعة'
另外两种情况我也遇到过。当使用“حيا٩”查询时,它 returns “حياة” 和 “حيات”。 当用“نعمstra”查询时,它 returns “نعمstra” 和 “نعمت”.
我在网上搜索了答案,但没有成功。
有没有人遇到过这种情况?
我通过在查询中添加以下内容解决了这个问题:COLLATE Arabic_100_CI_AS
SELECT * FROM Table where ArabicName COLLATE Arabic_100_CI_AS = N'رفعة'
注意!如果不在归类规范中指定 _100_
,它就无法工作。
您的问题与排序规则有关,您应该了解这意味着什么,尤其是排序规则中的最后几个字母 Arabic_100_CI_AS
。
CI
表示不区分大小写,您也可以选择设置 CS
表示区分大小写
AS
表示区分重音,与选项 AI
相同,表示不区分重音
好吧,这个排序规则可以在服务器、数据库、列级别上设置,或者您可以在语句末尾添加 COLLATE
命令进行显式搜索。