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

Var*_*han 1 sql oracle

我有一张包含几千条记录的表格.当我运行一个类似的声明

select distinct issue_type from data_tab;
Run Code Online (Sandbox Code Playgroud)

结果是:

issue_type
C
c
Run Code Online (Sandbox Code Playgroud)

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

issue_type
C
Run Code Online (Sandbox Code Playgroud)

我可以用sql之类的

select issue_type from data_tab
where data_id in 
( select min(data_id) from data_tab
group by upper(issue_type));
Run Code Online (Sandbox Code Playgroud)

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

在此先感谢Vardhan.

Luk*_*der 5

而不是嵌套SQL,为什么不写

select distinct upper(issue_type) from data_tab;
Run Code Online (Sandbox Code Playgroud)

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

  • 这是一种我们只应作为临时调查的一部分运行的查询,因此它几乎不值得索引. (2认同)