首页 > 解决方案 > 动态枢轴排序

问题描述

我已使用如下所示的动态列的数据透视和结果将行转移到列中,cat_v1 ,cost_v1 ,...。我想更改订单以便显示所有类别然后成本:cat_v1, ... ,cat_vi, cost_v1,...,cost_vi

SELECT * 
FROM
(
  SELECT ID , description, FN , cat , cost 
  FROM invt
)
Pivot 
(
  Max (cat) as cat , max ( cost)  as cost 
  FOR FN in (' ||  p_fn || ') 
)

标签: sqloraclepivot

解决方案


改变:

SELECT *

要按所需顺序命名列:

SELECT id, description, cat_v1, cat_v2, cat_v3, cost_v1, cost_v2, cost_v3

如果您要动态生成IN枢轴的子句,那么您还必须动态生成要选择的列。


推荐阅读