【问题标题】:Row_Number() and T-SQL ViewRow_Number() 和 T-SQL 视图
【发布时间】:2017-01-13 17:09:56
【问题描述】:

我正在尝试在 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 行
列名“行号”无效。消息 207,级别 16,状态 1,程序
GetUserUsersFollowing,第 36 行列名“行号”无效。消息
207,级别 16,状态 1,过程 GetUserUsersFollowing,第 34 行
列名“关注者”无效。

我对表格使用了相同的代码,但我不知道这里发生了什么。少了点什么……

谢谢。

【问题讨论】:

    标签: tsql


    【解决方案1】:

    您是从 表格 中选择的,而不是您在上面定义的 CTE。你应该在你的最终选择中做,“FROM TH_VW_UserFollowing”。我还建议给您的 CTE 取一个与您的表不同的名称。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-04-12
        • 1970-01-01
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        • 2018-09-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多