簡體   English   中英

如何使用多個條件進行過濾 like: Oracle SQL Developer

[英]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_LIKEWHERE子句中的過濾條件減少到一個。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM