Sql 如何从包含阿拉伯语或波斯语字母的表格中选择所有行?

Sql 如何从包含阿拉伯语或波斯语字母的表格中选择所有行?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我在SSMS和SQL中工作 我有一张表格,里面有几行阿拉伯字母。我想过滤那些特定的行 我想一定有一种方法可以用regex实现,但我找不到任何例子来说明如何准确地实现它 有人能帮忙吗 这是我第一次尝试。我可能把语法弄乱了。如果是,请纠正我 A.Text like N'[ـا اـب ـبـ بـ بـت ـتـ تـ تـث ـثـ ثـ ثـج ـجـ جـ جـح ـحـ حـ حـخ ـخـ خـ خـد دـذ ذـر رـز زـس ـسـ سـ سـش ـشـ شـ

我在SSMS和SQL中工作

我有一张表格,里面有几行阿拉伯字母。我想过滤那些特定的行

我想一定有一种方法可以用regex实现,但我找不到任何例子来说明如何准确地实现它

有人能帮忙吗

这是我第一次尝试。我可能把语法弄乱了。如果是,请纠正我

A.Text like N'[ـا   اـب ـبـ بـ  بـت ـتـ تـ  تـث ـثـ ثـ  ثـج ـجـ جـ  جـح ـحـ حـ  حـخ ـخـ خـ  خـد دـذ ذـر رـز زـس ـسـ سـ  سـش ـشـ شـ  شـص ـصـ صـ  صـض ـضـ ضـ  ضـط ـطـ طـ  طـظ ـظـ ظـ  ظـع ـعـ عـ  عـغ ـغـ غـ  غـف ـفـ فـ  فـق ـقـ قـ  قـك ـكـ كـ  كـل ـلـ لـ  لـم ـمـ مـ  مـن ـنـ نـ  نـه ـهـ هـ  هـو وـي ـيـ يـ  يـأ أـإ إـؤ ؤـئ ـئـ ئـ  ئـآ آ ]' 
这不管用。它返回了2个结果,而不是数千个。我不会说阿拉伯语,也不知道它到底返回了什么,因此无法进行比较。

试试这个:

select *
from tbl
where arabic_field <> convert(varchar(8000), arabicfield) --this may be omitted
and arabic-field like '%['+nchar(0x0600)+'-'+nchar(0x06FF)+']%' --checks if contains at least an arabic char (unicode 0600–06FF)
选择*
来自tbl
其中arabic_字段转换(varchar(8000),arabicfield)——这可以省略
和阿拉伯语字段“%['+nchar(0x0600)+'-'+nchar(0x06FF)+']%”检查是否至少包含阿拉伯语字符(unicode 0600–06FF)
试试这个:

select *
from tbl
where arabic_field <> convert(varchar(8000), arabicfield) --this may be omitted
and arabic-field like '%['+nchar(0x0600)+'-'+nchar(0x06FF)+']%' --checks if contains at least an arabic char (unicode 0600–06FF)
选择*
来自tbl
其中arabic_字段转换(varchar(8000),arabicfield)——这可以省略
和阿拉伯语字段“%['+nchar(0x0600)+'-'+nchar(0x06FF)+']%”检查是否至少包含阿拉伯语字符(unicode 0600–06FF)

您必须匹配阿拉伯字母表中至少一个可能的字符。所以我认为基本上是一个巨大的角色类。这将是难以置信的缓慢做到这一点。您必须查看每一行的每一列的每一个字符。另一种选择是拥有一个包含所有可能字符的表,并进行松散的通配符联接。不管你怎么切,它都会非常慢。这是我的第一个想法,我先写的。但是我不会说阿拉伯语,也不知道我是怎么说的。我只是复制了维基百科页面上的所有信件,然后尝试了一下。我得到了两个结果,我知道事实上应该有成千上万个。我想我可能把语法弄错了。我将把这一行添加到帖子中。这里和那里只有几个阿拉伯字母,或者这些值只使用阿拉伯字母吗?它们只使用阿拉伯字母和空格。您必须匹配阿拉伯字母表中至少一个可能的字符。所以我认为基本上是一个巨大的角色类。这将是难以置信的缓慢做到这一点。您必须查看每一行的每一列的每一个字符。另一种选择是拥有一个包含所有可能字符的表,并进行松散的通配符联接。不管你怎么切,它都会非常慢。这是我的第一个想法,我先写的。但是我不会说阿拉伯语,也不知道我是怎么说的。我只是复制了维基百科页面上的所有信件,然后尝试了一下。我得到了两个结果,我知道事实上应该有成千上万个。我想我可能把语法弄错了。我将把这一行添加到帖子中。这里和那里只有几个阿拉伯字母,或者这些值只使用阿拉伯字母吗?它们只使用阿拉伯字母和空格。我在DB中有各种其他字母,包括中文、西里尔文、印地语和其他字母。因此,我需要一种专门返回阿拉伯文/波斯文字母的方法。编辑为仅包含阿拉伯文,DB中还有各种其他字母,包括中文、西里尔文、印地语和其他。所以我需要一种专门返回阿拉伯/波斯字母的方法。编辑为只包含阿拉伯语