2010-09-03 64 views
3

我想实现分页为T-SQL视图:ROW_NUMBER()和T-SQL视图

with TH_VW_UserFollowing as 
(
Select FollowerID, 
     FollowingID, 
     FollowingFullName, 
     FollowingImage, 
     FollowingUserName, 
     dbo.GetUserFollowers(FollowingID) AS Followers, 
     ROW_NUMBER() OVER (order by dbo.GetUserFollowers(FollowingID) DESC) AS 'RowNumber' 
from dbo.TH_VW_UserFollowing 
where FollowerID = @UserID 
) 
Select FollowerID, 
     FollowingID, 
     FollowingFullName, 
     FollowingImage, 
     FollowingUserName, Followers 
from dbo.TH_VW_UserFollowing 
Where RowNumber BETWEEN @startIdx AND @endIdx 

对于原因,我收到这些错误:

消息207,级别16,状态1,过程GetUserUsersFollowing,第36行
无效的列名'RowNumber'。消息207,级别16,状态1,过程
GetUserUsersFollowing,第36行无效的列名'RowNumber'。消息
207,级别16,状态1,过程GetUserUsersFollowing,第34行
无效的列名称'追随者'。

我已经使用了相同的代码表,但我不知道这里发生了什么。东西丢失...

谢谢。

回答

2

您正在从中选择,而不是您在上面定义的CTE。你应该在你最后的SELECT中做“FROM TH_VW_UserFollowing”。我也建议给你的CTE从你的表中取一个不同的名字。

1

为什么要将cte命名为与视图名称相同?