如何在没有排序列时使用SQL Server的ROW_NUMBER函数

从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

现在还没有评论,去坐沙发?