Sql 具有多个列和行的轴
你能帮我实现以下目标吗 我有这个SQL输出表 DateWeek Keep_1 This_1 Order_1 Keep_2 This_2 Order_2 Keep_1-Keep_2 This_1-This_2 Order_1-Order_2 1/1/2013 9 8 7 6 5 4 3 3 3 DateWeek保持1本订单保持2本订单保持2本订单保持2本订单保持2本订单 1/1/2013 9 8 7 6 5 4 3 3 3 把它变成 RowOrder Column_1 Column_2 Column_1-Column_2 Keep 9 6 3 This 8 5 3 Order 7 4 3 行顺序列\u 1列\u 2列\u 1-列\u 2 保持9 6 3 这是853 命令7 4 3 如你所见,我必须按行顺序排列,所以我不能按字母顺序排列。此外,我还必须将Sql 具有多个列和行的轴,sql,pivot,unpivot,Sql,Pivot,Unpivot,你能帮我实现以下目标吗 我有这个SQL输出表 DateWeek Keep_1 This_1 Order_1 Keep_2 This_2 Order_2 Keep_1-Keep_2 This_1-This_2 Order_1-Order_2 1/1/2013 9 8 7 6 5 4 3 3 3 DateWeek保持1本订单保持2本订单保持2本订单保持2本订单保持2本订单 1/1/2013
Keep_1 This_1 Order_1
和Keep_2 This_2 Order_2
堆叠在一起,并使用Column_2
操作Column_1
有什么办法可以做到这一点吗
谢谢如果您使用的是SQL Server 2008+,那么您可以使用
交叉应用
和值
:
select c.roworder,
c.col1,
c.col2,
c.col3
from yourtable t
cross apply
(
values
('Keep', Keep_1, Keep_2, Keep_1_Keep_2),
('This', This_1, This_2, This_1_This_2),
('Order', Order_1, Order_2, Order_1_Order_2)
) c (roworder, col1, col2, col3)
看
这也可以在任何数据库中使用UNION ALL
查询来完成:
select 'Keep' RowOrder,
Keep_1 col1,
Keep_2 col2,
Keep_1_Keep_2 col3
from yourtable
union all
select 'This' RowOrder,
This_1 col1,
This_2 col2,
This_1_This_2 col3
from yourtable
union all
select 'Order' RowOrder,
Order_1 col1,
Order_2 col2,
Order_1_Order_2 col3
from yourtable
请参见您使用的是什么DBMS?太棒了!!真是太棒了!!非常感谢你