SQL Server 08 - pivot - 更改列名

时间:2015-11-03 13:04:43

标签: sql-server sql-server-2008 pivot columnname

我有这段代码:

SELECT * FROM(
   SELECT A.Id,
          B.Note,
          C.Value,
          C.Ammount
   FROM Table1 A
   LEFT JOIN Table2 B ON A.Id = B.Id
   LEFT JOIN Table3 C ON B.Id = c.Id AND B.Name = C.Name
   INNER JOIN(
      SELECT Name, LName, AxValue, Code, Number
      FROM Table Ax
      Where (Code = 80 AND Name = 'Bo') AS D ON D.AxValue = C.Value)
)AS Node1
PIVOT(
   SUM(Ammount)
   FOR Value IN ([1], [2])
)AS Node2

结果是这样的

Id   Note   1    2
--------------------
01   ok    500  100

有没有办法用姓名(Ex1,Ex2)而不是数字(1,2)重命名最后两列?

2 个答案:

答案 0 :(得分:1)

替换:

SELECT * FROM(
...

通过

SELECT Id, Note, [1] as Ex1, [2] as Ex2 FROM(
...

最好用您需要的列替换*。您可以使用as对其进行别名。

您可以在此处找到更多信息:Using Table Aliases

column_ alias下:SELECT Clause

答案 1 :(得分:0)

试试这个:

SELECT Id, Note, [1] as Ex1, [2] as Ex2 FROM(
   SELECT A.Id,
          B.Note,
          C.Value,
          C.Ammount
   FROM Table1 A
   LEFT JOIN Table2 B ON A.Id = B.Id
   LEFT JOIN Table3 C ON B.Id = c.Id AND B.Name = C.Name
   INNER JOIN(
      SELECT Name, LName, AxValue, Code, Number
      FROM Table Ax
      Where (Code = 80 AND Name = 'Bo') AS D ON D.AxValue = C.Value)
)AS Node1
PIVOT(
   SUM(Ammount)
   FOR Value IN ([1], [2])
)AS Node2

您需要指定列的名称,而不是使用*