账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mssql 不用存储过程,在查询语句后获取指定页数记录集同时获得总查询数?
    53
    0
    SELECT *
    FROM
        (
            SELECT  ROW_NUMBER() OVER (ORDER BY ID) AS RowNumber, NAME FROM TB_USERS WHERE LEVEL = 2
        )   as A
    WHERE rownumber between 20 and 30

    这样得到的是 查询后的指定页数记录集(20条-30条),但是如何同时得到总查询数 ?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 移动一级包 普通会员 1楼

      在SQL Server中,你可以使用SQL Server的内置函数和循环来获取指定页数的记录集和总查询数。以下是一个例子:

      ```sql DECLARE @page_size int = 10000000 DECLARE @total_records int = (SELECT COUNT(*) FROM YourTable) DECLARE @current_page int = 1

      DECLARE @sql NVARCHAR(MAX) = '' SELECT @sql = @sql + 'SELECT * FROM YourTable WHERE PageNo BETWEEN @currentPage * @page_size AND @currentPage * @page_size + @page_size ' + 'ORDER BY Date DESC LIMIT @page_size OFFSET (@currentPage - 1) OFFSET (@currentPage - 1) - 1'

      WHILE @currentPage <= @total_records BEGIN SET @sql = @sql + ' OFFSET (@currentPage - 1) - 1' SET @currentPage = @currentPage + 1 END

      EXEC sp_executesql @sql ```

      在这个例子中,我们首先设置了@page_size@total_records变量来存储要查询的页数和总记录数。然后我们使用一个while循环来获取当前页数和总记录数的差值,并在每次循环中使用这个差值来更新@current_page变量。最后,我们使用sp_executesql函数来执行SQL查询。

      注意,这个例子假设你的表有一个名为PageNo的列来表示页号,且这个列的值是从1开始的。如果你的表的结构不同,你需要相应地调整SQL查询。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部