Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chuyển đổi bảng / phân tích cú pháp trường trong PL / SQL

Một cách thay thế khác là sử dụng mệnh đề mô hình:

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.

Tôi đã viết tới 6 lựa chọn thay thế cho loại truy vấn này trong bài đăng blog này: http://rwijk.blogspot.com/2007/11/interval-based-row-generation.html

Trân trọng, 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. Định dạng chuỗi URL để kết nối với cơ sở dữ liệu Oracle với JDBC

  2. Trình tự Oracle cho trường khóa chính không truy xuất giá trị hiện được chèn trong Hibernate

  3. Truy vấn SQL Chọn xếp hạng đầu tiên 1 hàng Từ nhiều cấp bậc / Nhóm

  4. Chọn Giá trị từ Biến / Mảng Bảng Oracle?

  5. Các thủ tục được lưu trữ của Oracle, SYS_REFCURSOR và NHibernate