Sql 基于多列的Oracle透视

Sql 基于多列的Oracle透视,sql,oracle,pivot,oracle-sqldeveloper,Sql,Oracle,Pivot,Oracle Sqldeveloper,我对旋转和尝试基于两列旋转是相当陌生的 我拥有的数据: 我希望在数据透视后获得的数据: 我的问题有缺陷: select * from ( select ISSUEID,ANSWER, ANSWERCOMMENT,QUESTION ,QUESTIONID from issue_survey WHERE ISSUEID = 6877 ) d pivot ( max(QUESTION) for QUESTIONID in (1 QUESTION1,2 QUESTION2

我对旋转和尝试基于两列旋转是相当陌生的

我拥有的数据:

我希望在数据透视后获得的数据:

我的问题有缺陷:

   select *
from
(
  select ISSUEID,ANSWER, ANSWERCOMMENT,QUESTION ,QUESTIONID
  from issue_survey
  WHERE ISSUEID = 6877
) d
pivot
(
  max(QUESTION)
  for QUESTIONID  in (1 QUESTION1,2 QUESTION2, 3 QUESTION3)
) piv;
我从这个有缺陷的查询中得到的结果:

任何与此相关的建议都将不胜感激。谢谢大家!

试试看:

select *
from
(
  select ISSUEID,ANSWER, ANSWERCOMMENT,QUESTION ,
         rownum rn
  from issue_survey
  WHERE ISSUEID = 6877
) d
pivot
(
  max(QUESTION) as question, max(Answer) as answer,
  max( ANSWERCOMMENT ) as ANSWERCOMMENT
  for rn  in ( 1 ,2 , 3 )
) piv;
演示:

| ISSUEID |        1_QUESTION | 1_ANSWER | 1_ANSWERCOMMENT |   2_QUESTION | 2_ANSWER | 2_ANSWERCOMMENT |      3_QUESTION | 3_ANSWER | 3_ANSWERCOMMENT |
|---------|-------------------|----------|-----------------|--------------|----------|-----------------|-----------------|----------|-----------------|
|    6877 | Do you wanna wait |      YES |           TEST1 | How about it | Its okay |           TEST2 | Sample question |   (null) |           TEST3