sql >> Databáze >  >> RDS >> Oracle

Oracle získá všechny odpovídající výskyty ze sloupce

můžete zkusit tento dotaz.

 with test as(
  select 'ABC12345, DE22222' as JOB_Description from DUAL union
  select 'Please help to repair ABC12345, DE22222' as JOB_Description from DUAL 
)
SELECT REGEXP_SUBSTR(JOB_Description, '(ABC|DE)([[:digit:]]){5}', 1, LEVEL) AS substr
FROM test
CONNECT BY LEVEL <= REGEXP_COUNT(JOB_Description, '(ABC|DE)([[:digit:]]){5}')
  AND PRIOR JOB_Description = JOB_Description
  AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL

Výsledek:

ABC12345
DE22222
ABC12345
DE22222

Dobré vysvětlení posledních dvou řádků lze nalézt zde




  1. SQLite vrátil kód chyby 14

  2. Jak získat data BLOB pomocí oracle ODBC

  3. Získejte trvání jako rozdíl časového razítka pro opakované změny polohy

  4. Mysql merge count více sloupců