Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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_Sql Server - Fatal编程技术网

将列数据转换为行数据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]

我在SQL表中有一些类似的数据

[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
,…谢谢大家!真的很有用谢谢大家!真的很有帮助