【发布时间】:2014-05-08 23:07:17
【问题描述】:
我想在 SQL 查询中进行分页和排序。
这是我的查询
;WITH myCTE AS
(SELECT (FirstName+''+LastName) as [User Name],
ROW_NUMBER() OVER (ORDER BY FirstName) as RowID
From [MyTable])
SELECT TOP 10 * FROM myCTE
WHERE RowID > 10*(2-1)
工作正常,但现在我想按计算列 [用户名]
对记录进行排序所以我改变了这样的查询
;WITH myCTE AS
(SELECT (FirstName+''+LastName) as [User Name],
ROW_NUMBER() OVER (ORDER BY [User Name] ASC) as RowID
From [MyTable])
SELECT TOP 10 * FROM myCTE
WHERE RowID > 10*(2-1)
但它给出了这个错误:
Msg 207, Level 16, State 1, Line 2
Invalid column name 'User Name'.
谁能帮助我如何使用 ROW_NUMBER() OVER 计算列?或者如何在SQL查询中实现对记录的排序和分页?
【问题讨论】:
标签: sql sql-server sql-server-2008 tsql sql-server-2005