Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Transformasi tabel / penguraian bidang di PL/SQL

Alternatif lain adalah dengan menggunakan klausa model:

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.

Saya telah menulis hingga 6 alternatif untuk jenis kueri ini di posting blog ini:http://rwijk.blogspot.com/2007/11/interval-based-row-generation.html

Salam, Rob.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melewati operator SQL ke kueri melalui Parameter iReport

  2. PLS-00302:komponen harus dideklarasikan- Tidak dapat diselesaikan

  3. Bagaimana cara mengatur batas waktu untuk blok atau kueri anonim di plsql?

  4. Pengecualian Java Oracle - jumlah maksimum ekspresi dalam daftar adalah 1000

  5. Urutan hibernasi nextVal diselesaikan tetapi tidak digunakan (Oracle)