[英]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_LIKE
将WHERE
子句中的过滤条件减少到一个。
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.
你在帖子中指出的值,都被这个正则表达式捕获了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.