oracle查询如何将多种类型对应的结果在一条记录中展示出来?(比如表中有年份、类型、产值,查询结果显示想要的是年、类型A、产值A、类型B、产值B,类型C,,,,,)

解决方案 »

  1.   

    CREATE TABLE t(year INTEGER,type VARCHAR2(20),production INTEGER);
    INSERT INTO t VALUES (2016, 'A', 500);
    INSERT INTO t VALUES (2016, 'B', 600);
    INSERT INTO t VALUES (2016, 'C', 700);
    INSERT INTO t VALUES (2017, 'A', 800);
    INSERT INTO t VALUES (2017, 'B', 900);SELECT year, '类型A', pa, '类型B', pb, '类型C', pc
      FROM (SELECT year, TYPE, production
              FROM t
      )
     PIVOT (SUM(production) FOR (type) IN ('A' AS pa, 'B' AS pb, 'C' AS pc))
     ORDER BY year;YEAR |'类型A' |PA  |'类型B' |PB  |'类型C' |PC  |
    -----|------|----|------|----|------|----|
    2016 |类型A   |500 |类型B   |600 |类型C   |700 |
    2017 |类型A   |800 |类型B   |900 |类型C   |    |