将行转换为单个列

时间:2014-12-22 14:29:21

标签: sql sql-server-2008

我有一个这样的表,我需要将行转换为单列

PreviousYear   CurrentYear

   2014          2015

我需要这样的输出

Year

2014

2015

我对SQL很陌生,非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用UNION(会给您不同的值)或UNION ALL(不会给您不同的值):

SELECT PreviousYear AS 'Year'
FROM tablename
UNION ALL
SELECT CurrentYear
FROM tablename

这假设两列PreviousYearCurrentYear具有相同的数据类型,否则将需要显式强制转换。

答案 1 :(得分:0)

在一般/更复杂的情况下,您可以在列上使用UNPIVOT将数据作为行返回。如果需要,这样做的好处是可以在不透明的行中提供列名称:

SELECT 
    TheYear
FROM 
    MyTable
UNPIVOT 
(
   TheYear
   for years in ([PreviousYear], [CurrentYear])
) unpvt;

SqlFiddle here