sql >> Database teknologi >  >> RDS >> Oracle

oracle får alle matchede forekomster fra en kolonne

du kan prøve denne forespørgsel.

 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

Resultat:

ABC12345
DE22222
ABC12345
DE22222

En god forklaring på de sidste to linjer kan findes her




  1. SQL-funktioner - faktoriel

  2. Brug af en SQL-visning fra en enhedsrammekode Første version 5

  3. Oracle-database TNS Værdiens længde for nøgle 'datakilde' overskrider grænsen på '128'

  4. En oversigt over PostgreSQL &MySQL krydsreplikering