Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 具有多个列和行的轴_Sql_Pivot_Unpivot - Fatal编程技术网

Sql 具有多个列和行的轴

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

你能帮我实现以下目标吗

我有这个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 如你所见,我必须按行顺序排列,所以我不能按字母顺序排列。此外,我还必须将
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?太棒了!!真是太棒了!!非常感谢你