Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertieren Sie Zeilen in Spalten Oracle

versuchen Sie dies, um ein Skript zu generieren:

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

Doppelte Anführungszeichen hinzugefügt, da einige Spaltennamen reserviert sind, z. B. "DESC"