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

时间:2011-08-09 11:49:04

标签: sql 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));

比简单的不同语句慢〜7倍。我想知道是否有更好的方法。在JPQL或(本机oracle)SQL中的任何建议都应该有很大的帮助。

提前致谢,Vardhan。

1 个答案:

答案 0 :(得分:5)

不是嵌套SQL,为什么不写

select distinct upper(issue_type) from data_tab;

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