我可以使用Pivot或Aggregation并编写查询以将多行转换为多列

时间:2018-07-26 02:52:02

标签: sql sql-server sql-server-2008

我有一张这样的桌子...

 app.UseSpa(spa =>
    {
        // To learn more about options for serving an Angular SPA from ASP.NET Core,
        // see https://go.microsoft.com/fwlink/?linkid=864501

        spa.Options.SourcePath = "ClientApp";

        // if (env.IsDevelopment())
        // {
        //     spa.UseAngularCliServer(npmScript: "start");
        // }
        spa.UseAngularCliServer(npmScript: "start");
    });

我想像下面的表格那样转置

ID, Obj_Name, Value
1     Col1     XA
1     Col2     XB
2     Col1     DX
2     Col2     XY

我下面的查询无法正常工作,我知道为什么,但是我不知道如何解决。我已经在互联网上搜索了类似的问题,但没有找到。有人可以给我一个正确的方法提示吗?

ID, Col1, Col2
1    XA    XB
2    DX    XY

1 个答案:

答案 0 :(得分:3)

您在条件汇总查询中缺少分组依据

SELECT 
ID, 
MAX(CASE WHEN OBJ_NAME = 'Col1' THEN Value END) as Col1, 
MAX(CASE WHEN OBJ_NAME = 'Col2' THEN Value END) as Col2 
FROM Table1
Group by ID