sql >> Databasteknik >  >> RDS >> Oracle

Tabelltransformation / fältanalys i PL/SQL

Ett annat alternativ är att använda modellsatsen:

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.

Jag har skrivit upp till 6 alternativ för den här typen av frågor i det här blogginlägget:http://rwijk.blogspot.com/2007/11/interval-based-row-generation.html

Hälsningar, Rob.



  1. Sampla om tidsseriedata

  2. Hur kan jag felsöka varför den enklaste MySQL-frågan returnerar falskt?

  3. Hur frågar jag om behörigheterna för en Oracle-katalog?

  4. Hur migrerar man en PostgreSQL-databas till en SQLServer-databas?