将列数据转换为行数据SQL
我在SQL表中有一些类似的数据将列数据转换为行数据SQL,sql,sql-server,Sql,Sql Server,我在SQL表中有一些类似的数据 [ID],[SettleDate],[Curr1],[Curr2][Quantity1],[Quantity2],[CashAmount1],[CashAmount2] 我遇到的问题是,我需要从该数据创建2条记录(1的所有信息和2的所有信息)。下面的例子 [ID],[SettleDate],[Curr1],[Quantity1],[CashAmount1] [ID],[SettleDate],[Curr2],[Quantity2],[CashAmount2]
[ID],[SettleDate],[Curr1],[Curr2][Quantity1],[Quantity2],[CashAmount1],[CashAmount2]
我遇到的问题是,我需要从该数据创建2条记录(1的所有信息和2的所有信息)。下面的例子
[ID],[SettleDate],[Curr1],[Quantity1],[CashAmount1]
[ID],[SettleDate],[Curr2],[Quantity2],[CashAmount2]
有人知道怎么做吗
感谢这方面的标准(即跨RDBMS)解决方案是使用联合:
select ID, SettleDate, Curr1, Quantity1, CashAmount1 from mytable
union all select ID, SettleDate, Curr2, Quantity2, CashAmount2 from mytable
根据您的RBDM,可能会有更整洁的解决方案。这只是另一种选择。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)
你用的是什么产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请查看您正在使用的数据库产品postgresql
,oracle
,sqlserver
,db2
,…谢谢大家!真的很有用谢谢大家!真的很有帮助