sql - 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() 添加到每个列表的值中。还有其他方法可以实现吗?
解决方案
lower()
接受一个参数,因此您可以使用:
where lower(user) in (lower('userNaMe1'), lower('useRNAmE2'))
如果您愿意,也可以使用正则表达式(regexp_like()
接受区分大小写的参数)来表达这一点:
where regexp_like(user, '^(userNaMe1|useRNAmE2)$', 'i')
推荐阅读
- rust - 对货物使用多个标志
- c# - 我可以使用 gRpc 代替 SignalR 在客户端更新通知吗?
- sql - SQL Server:如果带有int ID的数字,则内部连接字符串
- javascript - 使用 Lerna 将 JavaScript 导入 TypeScript 应用程序
- java - 一个 osgi 捆绑包可以成为生产者,而它从另一个捆绑包中消费吗?
- c# - sed一个udp数据包到openvpn的方法是什么
- java - “我猜你的年龄”游戏无法正常运行
- javascript - JavaScript 生成带有特殊字符 JSON 的标题
- mediawiki - 哪个版本的 MediaWiki 出现了“页面预览”功能?
- react-native - 如何在反应原生应用程序中跟踪设备上的所有图像?