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

Tabeltransformation / feltparsing i PL/SQL

Et andet alternativ er at bruge modelklausulen:

SQL> select id
  2       , value
  3    from codes
  4   model
  5         return updated rows
  6         partition by (id)
  7         dimension by (-1 i)
  8         measures (value)
  9         ( value[for i from 0 to length(value[-1])-length(replace(value[-1],',')) increment 1]
 10           = regexp_substr(value[-1],'[^,]+',1,cv(i)+1)
 11         )
 12   order by id
 13       , i
 14  /

        ID VALUE
---------- -------------------
        10 A
        10 B
        10 C
        11 A
        11 B
        12 A
        12 B
        12 C
        12 D
        12 E
        12 F
        13 R
        13 T
        13 D
        13 W
        13 W
        13 W
        13 W
        13 W
        13 S
        13 S

21 rows selected.

Jeg har skrevet op til 6 alternativer til denne type forespørgsel i dette blogindlæg:http://rwijk.blogspot.com/2007/11/interval-based-row-generation.html

Med venlig hilsen Rob.



  1. Importfejl under kørsel af cgi-bin på localhost - udefineret symbol:lo_truncate64

  2. Sådan Bulk Indsæt fra XLSX filtypenavn?

  3. konvertering af Epoch-tidsstempel til sql-server (læsbart format for mennesker)

  4. Oracle svarende til SQL Server DATEPART