嗨,有这样的表
NR PROJECT RESULT
1 name1 234
1 name2 937
2 name1 3
2 name2 6
我试图以这种方式呈现结果:
NR NAME1 NAME2
1 234 937
2 3 6
因此PROJECT列的VALUES成为表示各自RES值的标题,而相同的NR值合并为一行
帮助:)
答案 0 :(得分:1)
如果您正在使用固定的项目列表,则可以使用(正如您在问题标题中提到的)pivot
。
http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html
SELECT
*
FROM
yourTable
PIVOT
(
SUM(result)
FOR project IN ('name1' AS NAME1, 'name2' AS NAME2)
)
这将产生与“条件聚合”相同的结果。
SELECT
NR,
SUM(CASE WHEN PROJECT = 'name1' THEN result END) AS NAME1,
SUM(CASE WHEN PROJECT = 'name2' THEN result END) AS NAME2
FROM
yourTable
GROUP BY
NR
示例:http://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=19f31ce152f4f88c3d74e867016765d7