在SQL中重新排列行和列

时间:2011-02-21 08:18:48

标签: sql

我需要根据要求重新排列行和列。

我在表格中有数据:

SBU_ID   FAC_ID   Month     Year    Venting   Combustion   Comments
 3001     4001      1       2009      5.31     207.11   ABCD
 3002     4002      2       2009     15.24      45.12       XYZ
 3003     4003      1       2010      8.56       5.00       PQRS

所需格式:

                            Jan-2009             Feb-2009         Jan-2010
SBU_ID FAC_ID Metric      Result   Comment     Result  Comment   Result  Comment
3001   4001   Venting      5.31     ABCD        15.24   XYZ       8.56   PQRS
3001   4001   Combustion   207.11   ABCD        45.12   XYZ       55.00  PQRS

如果可能,请提供建议。感谢。

3 个答案:

答案 0 :(得分:1)

谷歌的 PIVOT / UNPIVOT 功能(如果您正在谈论 MS SQL )或它是 Oracle 和其他数据库的类似物。< / p>

答案 1 :(得分:0)

在SQL Query级别,不要尝试解决此问题。

一旦查询返回所有行,请在高级代码,java或c中执行此噱头。

答案 2 :(得分:0)

我们不知道您是想显示数据还是完全转换表设计?

通常(在第一种情况下),您应该执行查询(或一系列查询)以从源数据中检索特定结果。

使用简单查询获取所需格式的数据并不简单(您没有提及任何特定的数据库引擎)。老实说,我甚至不知道在技术上是否可以创建查询以将列条目(Venting,Combustion)呈现为行(可以是“group by”系列?)而无需编写简单的应用程序来转换数据。 / p>