Oracle中如何判断文本为阿拉伯语或英语并分类显示
区分阿拉伯语与英语词汇的SQL实现方案
可以通过正则表达式匹配阿拉伯语字符范围结合CASE表达式来实现,以下是不同主流数据库的具体写法:
MySQL/MariaDB 版本
SELECT C1, CASE WHEN C1 REGEXP '^[\\x0600-\\x06FF]+$' THEN 'Ar' ELSE 'EN' END AS C2 FROM your_table_name;
PostgreSQL 版本
SELECT C1, CASE WHEN C1 ~ '^[\u0600-\u06FF]+$' THEN 'Ar' ELSE 'EN' END AS C2 FROM your_table_name;
注意事项
- 把语句中的
your_table_name替换成你实际使用的表名 - 上述规则会把完全由阿拉伯语字符组成的行标记为
Ar,其余标记为EN;如果需要只要包含阿拉伯语字符就标记Ar,可以去掉正则里的^和$ - 确保数据库的字符集设置为UTF-8,否则可能出现匹配失效的问题
内容的提问来源于stack exchange,提问作者Bahy Mohamed
相关产品推荐
相关产品推荐

