Oracle Pivot - converting values into columns

前端 未结 2 2108
不知归路
不知归路 2020-12-04 03:16

I have table in Oracle 11g with 3 fields:

 STUDYID  |  STUDY_PARAMETER  | STUDY_VALUE

  5268    |  Age Group        | ADULT (         


        
2条回答
  •  庸人自扰
    2020-12-04 04:06

    Since the STUDY_VALUE column appears to be a string, you will need to use either the max() or min() aggregate function on the values:

    SELECT *
    FROM  
    (
      SELECT STUDYID, STUDY_VALUE, STUDY_PARAMETER
      FROM   STUDY_INFO
    )
    PIVOT 
    (
      MAX(STUDY_VALUE)
      FOR (STUDY_PARAMETER) IN ('Age Unit' AS AGE_UNIT,
                                  'Age Group' AS AGE_GROUP,
                                  'Trial Type' AS TRIAL_TYPE)
    );
    

    See SQL Fiddle with Demo

提交回复
热议问题