如何在没有排序列时使用SQL Server的ROW_NUMBER函数
沧海依粟 @ 2009-03-29 1:38:57 | 类归于: SQL Server | 0 条评论 | 513次阅读
从SQL Server 2005开始,SQL Server就为我们提供了ROW_NUMBER函数.这个函数的出现使得我们在分页的时候有了新的选择.但是ROW_NUMBER函数需要和OVER一起用,而OVER里面得设置一个排序条件(ORDER BY 啥啥啥的).如果我们正好有排序条件(大多数情况),那塞给他一个也还行.那如果我们想按原始顺序排列,没有排序列咋办?
嗯.有需求就会有办法.如下:
WITH [TempTable] AS
(SELECT *, ROW_NUMBER() OVER(ORDER BY (SELECT 0)) AS [RowNumber] FROM [TableName])
SELECT TOP 10 * FROM [TempTable] WHERE [RowNumber] BETWEEN 1 AND 10