在查询中忽略大小写

时间:2012-01-24 11:13:44

标签: oracle select case ignore

  

可能重复:
  Oracle DB: How can I write query ignoring case?

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

DBMS是oracle

1 个答案:

答案 0 :(得分:5)

您的意思是lower()upper()对吗?

Oracle支持许多different languages,这意味着您需要使用nls函数。在这种情况下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