sql - 动态枢轴排序
问题描述
我已使用如下所示的动态列的数据透视和结果将行转移到列中,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 || ')
)
解决方案
改变:
SELECT *
要按所需顺序命名列:
SELECT id, description, cat_v1, cat_v2, cat_v3, cost_v1, cost_v2, cost_v3
如果您要动态生成IN
枢轴的子句,那么您还必须动态生成要选择的列。
推荐阅读
- django - 无法分配“'2'”:“TakenQuiz.question”必须是“Question”实例
- ios - iOS Container View 加载 UIViewController 内容超出范围
- javascript - 如何通过javascript插件/扩展隐藏地址栏、菜单栏等操作跨浏览器窗口?
- c++ - 两个矩形相交的面积
- python - 如何访问模型实例以获取文件数据
- python - 更改未知初始形状列表的所有值
- firebase - 生成新消息时,聊天应用程序如何知道从后端数据库服务器中提取?
- php - 比较 2 个用变量填充的 PHP 文件,将缺少的变量从一个添加到另一个
- angular - 如何让这个响应拦截器在 Angular 中工作?
- sql-server - 数据库图中不可用的更改表结构 (localdb)