首页 > 解决方案 > Oracle 中不区分大小写的 where-in SQL 查询

问题描述

我需要创建一个不区分大小写的 WHERE-IN 查询(​​使用 Oracle)。我试过这样:

select user from users where lower(user) in lower('userNaMe1', 'useRNAmE2');

但我得到ORA-00909: invalid number of arguments

该列表是在我的 Spring 应用程序中动态生成的。这就是为什么我不能将 lower() 添加到每个列表的值中。还有其他方法可以实现吗?

标签: sqloracle

解决方案


lower()接受一个参数,因此您可以使用:

where lower(user) in (lower('userNaMe1'), lower('useRNAmE2'))

如果您愿意,也可以使用正则表达式(regexp_like()接受区分大小写的参数)来表达这一点:

where regexp_like(user, '^(userNaMe1|useRNAmE2)$', 'i')

推荐阅读