sql >> Databasteknik >  >> RDS >> Oracle

Oracle REGEX_SUBSTR respekterar inte nollvärden

Jag är rädd att ditt accepterade svar inte hanterar fallet där du behöver värdet efter nollpositionen (försök att få det sjätte fältet):

SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '[^,]*', 1, 6) phn_end
_dt
  2  from dual;

P
-

Du måste göra detta istället tror jag (fungerar på 11g):

SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '([^,]*)(,|$)', 1, 6,
NULL, 1) phn_end_dt
  2  from dual;

P
-
P

Jag upptäckte just detta efter att ha postat min egen fråga:REGEX för att välja n:te värde från en lista, vilket tillåter nollor



  1. Ladda upp bilder till fjärrserver, iPhone

  2. slå samman tre tabeller för specifika resultat

  3. Lista alla sekvenser i en Postgres db 8.1 med SQL

  4. Tillstånd nekad för relation