在SQL中重新排列行和列

在SQL中重新排列行和列,sql,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 20

我需要按照要求重新排列行和列

我在表格中有如下数据:

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

如果可能的话,请给出建议。谢谢。

在SQL查询级别,不要试图解决此问题


一旦查询返回所有行,就在高级代码中使用java或c之类的工具。

在SQL查询级别,不要试图解决这个问题


查询返回所有行后,在高级代码中使用java或c之类的工具进行此操作。

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

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


使用简单查询以所需格式获取数据并不简单(您没有提到任何特定的数据库引擎)。老实说,我甚至不知道在技术上是否可以创建查询,将列条目(通风、燃烧)显示为行(可能是“分组依据”系列?),而无需编写一个简单的应用程序来转换数据。

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

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


使用简单查询以所需格式获取数据并不简单(您没有提到任何特定的数据库引擎)。老实说,我甚至不知道在技术上是否可以创建查询,将列条目(通风、燃烧)显示为行(可能是“分组依据”系列?),而无需编写简单的应用程序来转换数据。

Google forPIVOT/UNPIVOT函数(如果您谈论的是MS SQL)或者它类似于Oracle和其他数据库。

Google forPIVOT/UNPIVOT函数(如果您谈论的是MS SQL)或者它类似于Oracle和其他数据库。

如果您将代码、XML或示例数据作为表格发布,请在文本编辑器中突出显示这些行,然后单击“代码示例”按钮(
{}
)在编辑器工具栏上很好地格式化和语法突出显示它!什么数据库??什么版本??这些内容通常是特定于供应商的,在标准SQL中无法轻松处理。如果您将代码、XML或示例数据作为表格发布,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(
{}
),以很好地格式化和语法突出显示它!什么数据库??什么版本??这些事情通常是特定于供应商的,在标准SQL中无法轻松处理