在oracle
数据库中,我有一些VIEWS
。
例如:
view_1
view_2
view_3_1
view_3_2
view_3_3
view_4
view5
现在我想获得一个包含view_1,view_2和view_3_anything
的列表 Expected output
view_1
view_2
view_3_1
view_3_2
view_3_3
我怎样才能实现
答案 0 :(得分:2)
a->palavra = malloc(strlen(word)+1);
当然,这也可以在没有select view_name
from all_views -- or user_views or dba_views depending on requirement
where view_name in ('VIEW_1', 'VIEW_2')
UNION ALL
select view_name
from all_views
where view_name like 'VIEW_3_%'
;
的情况下完成,但这需要UNION ALL
子句中OR
相关的条件 - 因此WHERE
上的索引无法使用。这对于庞大的数据库很重要,如果不能使用索引,性能可能会变得不可接受。 (与使用正则表达式相同 - 任何带有正则表达式的解决方案都会阻止在VIEW_NAME
上使用索引。)
答案 1 :(得分:0)
对于匹配^VIEW_[12]$
和^VIEW_3
的正则表达式:
select * from user_views
where regexp_like(view_name,'^VIEW_(([12]$)|3)')
order by 1;