sql - 将列数据转换为行数据 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,可能会提供更简洁的解决方案。
推荐阅读
- performance - 为什么 WebGL 帧率在全屏时会下降?
- python - TensorFlow 对象检测 API 测试失败
- java - 如何验证字段仅在 AVRO 模式中具有特定值
- weka - 每次点击后,WEKA 都会冻结
- flutter - 在 Flutter 的流构建器中使用 Future 构建器是正确的
- linux - Docker 不会将文件从容器复制到主机的 /tmp 文件夹
- amazon-web-services - 使用 Cloud Formation 从 Lambda 获取价值并检查分支的条件
- sql - 在 SSRS 中显示数据源
- redis - 如何获取带前缀的 Redis 键中的数据/值大小?
- javascript - 为什么谷歌地图在两点之间显示错误的持续时间?