我想使用Oracle 11g中的正則表達式從列中提取文本。我有兩個查詢可以完成這項工作,但我正在尋找一種(更清潔/更好的)方式來完成這項工作。也許可以將查詢合併爲一個或一個新的等價查詢。它們是:如何從Oracle 11g中的表中提取模式?
查詢1:鑑定與模式匹配的行:
select column1 from table1 where regexp_like(column1, pattern);
問題2:提取匹配的行的所有匹配的文本。
select regexp_substr(matching_row, pattern, 1, level)
from dual
connect by level < regexp_count(matching_row, pattern);
我使用PL/SQL將這兩個查詢粘合在一起,但它很混亂和笨拙。我如何將它們組合成1個查詢。謝謝。
更新:爲圖案 'BC' 的示例數據:
row 1: ABCD
row 2: BCFBC
row 3: HIJ
row 4: GBC
預期的結果是4行 'BC' 的表。
有趣的......你能發佈一個什麼樣的數據看起來像樣本和期望的結果嗎? – FrustratedWithFormsDesigner
+1 - 有趣的練習! – DCookie