ORDER BY是否在SELECT @ some_var =中工作

时间:2011-08-11 06:43:23

标签: sql-server tsql sql-server-2008 sql-server-2000

SQL Server 2008r2 Express SP1。 我需要在EXEC'动态SQL'的某些字段中列出所有不同日期的列表。当然,日期应该是正确的顺序。下面的代码工作正常但我的老板说在大表上ORDER BY在某些情况下不会起作用,因为SELECT语句中有@pivot_list = ...他曾与SqlServer2000合作,甚至不会编译这些代码。谁能告诉我这是否适用于SQL Server 2008r2?

USE tempdb
GO
DECLARE @pivot_list varchar(max)

CREATE TABLE #TovarSales(FullDate varchar(8))

INSERT #TovarSales VALUES ('20101010')
INSERT #TovarSales VALUES ('20101210')
INSERT #TovarSales VALUES ('20091010')
INSERT #TovarSales VALUES ('20111111')
INSERT #TovarSales VALUES ('20050505')

SELECT  @pivot_list = ISNULL(@pivot_list + ', ', '') + '[' + TS.FullDate + ']'
FROM #TovarSales TS
GROUP BY  TS.FullDate
ORDER BY TS.FullDate

select @pivot_list

DROP TABLE #TovarSales

感谢。

1 个答案:

答案 0 :(得分:1)

此代码适用于SQL Server 2008。

结果是

 [20050505], [20091010], [20101010], [20101210], [20111111]