如何检索oracle数据表中不敏感的不同元素



我有一个有几千条记录的表。当我运行像

这样的语句时
select distinct issue_type from data_tab;

的结果是:

issue_type
C
c

获得不区分大小写的结果集的有效方法是什么,因此结果是:

issue_type
C
我可以使用像

这样的sql
select issue_type from data_tab
where data_id in 
( select min(data_id) from data_tab
group by upper(issue_type));

比一个简单的distinct语句慢7倍。我想知道是否有更好的方法。任何关于JPQL或(本地oracle) SQL的建议都将大有帮助。

提前谢谢你,Vardhan。

比起嵌套SQL,为什么不直接写

select distinct upper(issue_type) from data_tab;

如果在issue_type上没有索引,它应该只比原始查询稍微慢一点。否则,您可以在upper(issue_type)上创建基于函数的索引,但对于您的用例来说,这可能有点极端。

最新更新