2011-12-08 37 views
2

我有一個查詢,我抓住數據庫中的表的DDL。如何在Oracle SQL中刪除多個「不喜歡」的子句?

有外部安裝的表,臨時表和其他表,我不希望這些信息,所以我有條款,如...where object_name not like 'ext_%'...,但我有這些條款中的六個。

是否有某種方式將它們結合起來,以便我可以做類似...where object_name not like in (EXT_%, TMP_%,...)的事情?

有點像你怎麼說,...where id in (1,2,3)

回答

0

如果大公都是這個模式XXX_%,你可以剝離的前四個字符和(使用不「EXT _」,「TMP_」

或者perhapos在與他們凌晨表,做一個外部聯接。

另一個選項可能是

不像'[ET] [XM] [TP] _%' 雖然不是很可讀。

PS大概你是逃避下劃線看,因爲它是任何單個字符。

3

如何:

... 
WHERE SUBSTR(object_name, 1, 4) NOT IN ('EXT_', 'TMP_', ...) 
+0

這正是我所期待的。謝謝! –

+0

呃,不幸的是,這不是過濾掉它應該的表格。我會多花一點時間,因爲這正是我想象的解決方案的樣子...... –