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

Chuyển đổi hàng thành cột Oracle

hãy thử điều này để tạo một tập lệnh:

select 'select '||FILE_ID||' FILE_ID,'||
  ltrim(sys_connect_by_path('REC_FLD_'||FIELD_NUMBER||' "'||FIELD_NAME||'"',','),',')||
  ' from RESPONSE_DETAILS where FILE_ID=' ||FILE_ID||';'
  from (select t.*,count(*) over (partition by FILE_ID) cnt from RESPONSE_METADATA t)
 where cnt=FIELD_NUMBER start with FIELD_NUMBER=1 
connect by prior FILE_ID=FILE_ID and prior FIELD_NUMBER=FIELD_NUMBER-1

Đã thêm dấu ngoặc kép vì một số tên cột được dành riêng "DESC" chẳng hạn




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không phải lỗi biểu thức GROUP BY

  2. Cách tốt nhất để nhận email sau khi đồng thời không thành công (sql - trigger - application)

  3. Chèn nhiều SQL vào nhiều hàng

  4. Giới hạn bản ghi trả về từ truy vấn SQL trong Oracle

  5. Ví dụ thu thập hàng loạt Oracle bằng cách sử dụng đối tượng loại Rowtype con trỏ