简体   繁体   English

如何使用多个条件进行过滤 like: Oracle SQL Developer

[英]How to filter with multiple conditions in like: Oracle SQL Developer

I want to optimise the following SQL request (without creating another table):我想优化以下 SQL 请求(不创建另一个表):

Select * from table
where var1 like 'file_X_2022_1_001%' 
   or var1 like 'file_X_2022_1_004%' 
   or var1 like 'file_X_2022_1_006%'
   or var1 like 'file_X_2022_8_002%'
   or var1 like 'file_X_2022_8_0015%' 
   .
   .
   .
   or ... or var1 like 'file_X_2022_10_1000%';

I want something like in() where I can regroup all values in one parentheses:)我想要像in()这样的东西,我可以在一个括号中重新组合所有值:)

Thank you in advance!先感谢您!

You can reduce your filtering conditions in the WHERE clause to one only with REGEXP_LIKE .您可以使用REGEXP_LIKEWHERE子句中的过滤条件减少到一个。

SELECT * 
FROM tab
WHERE REGEXP_LIKE (var1, 'file_X_2022_[0-9]{1,2}_[0-9]?[0-9]{3}')

Pattern should be fine-tuned to exclude the values you don't allow.应微调模式以排除您不允许的值。 Values pointed in the post by you, get all caught by this regex.你在帖子中指出的值,都被这个正则表达式捕获了。

Check the demo here .此处查看演示。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM