繁体   English   中英

将列数据转置为行数据 SQL

[英]Transposing Column Data into Row Data SQL

我在 SQL 表中有一些看起来像这样的数据。

[ID],[SettleDate],[Curr1],[Curr2][Quantity1],[Quantity2],[CashAmount1],[CashAmount2]

我遇到的问题是,我需要从这些数据中创建 2 条记录(来自 1 的所有信息和来自 2 的所有信息)。 下面的例子。

[ID],[SettleDate],[Curr1],[Quantity1],[CashAmount1]
[ID],[SettleDate],[Curr2],[Quantity2],[CashAmount2]

有谁知道如何做到这一点?

谢谢

对此的标准(即跨 RDBMS)解决方案是使用union

select ID, SettleDate, Curr1, Quantity1, CashAmount1 from mytable
union all select ID, SettleDate, Curr2, Quantity2, CashAmount2 from mytable

根据您的 RBDMS,可能会提供更简洁的解决方案。

只是另一种选择。 ItemNbr 1/2 只是为了维护哪个元素。

 Select A.[ID]
       ,A.[SettleDate]
       ,B.*
  From  YourTable A
  Cross Apply ( values (1,[Curr1],[Quantity1],[CashAmount1])
                      ,(2,[Curr2],[Quantity2],[CashAmount2])
              ) B{ItemNbr,Curr,Quantity,CashAmount)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM