为以某个字符串

时间:2017-07-27 20:05:36

标签: oracle

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

我怎样才能实现

2 个答案:

答案 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;
相关问题