oracle 数据横向展示
假如一张表
col1, col2, col3, 横向字段
aaa, bbb, ccc, 123
aaa, bbb, ccc, 234
ddd, eee, fff, 234
ddd, eee, fff, 634
我想查询后展示出来
aaa, bbb, ccc, 123, 234
ddd, eee, fff, 234, 634
那用以下语句,横向字段有几种就加几个max
SELECT col1, col2, col3 , MAX(CASE WHEN row_flg = 1 THEN 横向字段 END) 横向字段1 , MAX(CASE WHEN row_flg = 2 THEN 横向字段 END) 横向字段2 , MAX(CASE WHEN row_flg = 3 THEN 横向字段 END) 横向字段3 FROM( select temp.col1, temp.col2, temp.col3, t.横向字段 ,temp.row_flg from ( select t.col1, t.col2, t.col3, row_number() OVER(PARTITION BY t.col3 order by t.横向字段 desc) as row_flg from t ) temp ) GROUP BY col1, col2, col3
浙公网安备 33010602011771号