忽略查询中的大小写

14 浏览
0 Comments

忽略查询中的大小写

可能是重复问题:

Oracle数据库:如何编写忽略大小写的查询?

我有一个SQL查询,其中的where条件包含英文和阿拉伯字符,所以我不能使用toupper或tolower,因为阿拉伯字符会显示为问号。

数据库管理系统是Oracle。

0
0 Comments

在查询中忽略大小写的问题可能出现的原因是,Oracle支持许多不同的语言,这意味着需要使用nls函数来处理。在这种情况下,可以使用nls_lower函数。

解决方法是在查询中使用nls_lower函数来忽略大小写。以下是一个示例查询语句:

select nls_lower('my string', 'NLS_SORT = ARABIC') from dual

然而,这可能会导致与拉丁字符相关的问题。为了解决这个问题,可以添加一些额外的逻辑来检查输出。以下是一个用于缓解问题的示例查询语句:

select case when instr(lower('my_string'),'?') > 0
                 then nls_lower('my string', 'NLS_SORT = ARABIC')
            else lower('my_string')
       from dual

0