【发布时间】:2011-03-31 18:50:56
【问题描述】:
我有一个表 var,其中有一些行,但只有一列 DATETIME 类型,如下所示:
[Day]
2010-08-03
2010-08-04
2010-08-10
2010-08-11
我需要在某些列上显示,但只在一行中显示。 我的结果集将限制为 5 行,然后我也可以限制为 5 列。 我需要的示例:
[Day1] [Day2] [Day3] [Day4] [Day5]
2010-08-03 2010-08-04 2010-08-10 2010-08-11 NULL
我试图在 SQL Server 2005 中使用 PIVOT 来实现。 但是所有示例都使用更多列来聚合值,那我不明白。
这是我正在尝试的查询:
SELECT r.* FROM (SELECT ROW_NUMBER() OVER (ORDER BY Day ASC) Line, Day FROM @MyDays) AS o
PIVOT (MIN(Line) FOR Day IN (Day1, Day2, Day3, Day4, Day5)) AS r
但是结果都是NULL:
[Day1] [Day2] [Day3] [Day4] [Day5]
NULL NULL NULL NULL NULL
谁能告诉我我做错了什么?
【问题讨论】:
标签: sql-server-2005 tsql pivot