[英]How to filter with multiple conditions in like: Oracle SQL Developer
我想優化以下 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%';
我想要像in()
這樣的東西,我可以在一個括號中重新組合所有值:)
先感謝您!
您可以使用REGEXP_LIKE
將WHERE
子句中的過濾條件減少到一個。
SELECT *
FROM tab
WHERE REGEXP_LIKE (var1, 'file_X_2022_[0-9]{1,2}_[0-9]?[0-9]{3}')
應微調模式以排除您不允許的值。 你在帖子中指出的值,都被這個正則表達式捕獲了。
在此處查看演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.