我想从列中获取所有数据,但我的源代码只会向我提供有关同一列的部分信息,例如我的源代码将为我提供以下数据(未插入数据库,excel文件) :
Id_Source
----------------
ABC
A1B
B23
CGT
TGR
FRT
我的oracle表信息如下所示:
Id
----------------
ABC__120116
A1B__130115
B23__123534
CGT__125347
TGR__456873
FRT__124652
我尝试使用substr函数来做,但它似乎没有用,这是我到目前为止。
select id
from Tbl1
where
id in (substr('ABC',1,3));
我也尝试使用OR条件,但是我有数千条记录,搜索时间太长。
select id
from tbl1
where
and (
transaction_id like 'ABC%' or
transaction_id like 'A1B%' or
transaction_id like 'B23%');
有没有办法通过子字符串或任何其他方式获得有条件的搜索更快?
答案 0 :(得分:1)
你在找这个吗?
where substr(transaction_id, 1, 3) in ('ABC', 'A1B', 'B23', 'CGT', 'TGR', 'FRT')
使用基于函数的索引可以更快地工作:
create index idx_t_transaction_id on t(substr(transaction_id, 1, 3));