• SQL server分页代码


    分页功能是每个程序员必备的技能。

    第一种方法是ROW_NUMBER的方法。这个特点是每次分页,都写一大篇分页代码的存储过程。

    还需要用到临时表等。

    分页的存储过程:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Liu>
    -- Create date: <Create Date,,2019-12-23>
    -- Description:    <Description,,User表分页>
    -- =============================================
    CREATE PROCEDURE UserPageList
    @CurrentPage int,
    @PageSize int
    AS
    BEGIN
        SET NOCOUNT ON;
        declare
        @SQL nvarchar(max);
        set @SQL=' with Temp as(select ROW_NUMBER() over(Order by UserId) as RowIndex,UserId,UserName from S_User where 1=1)select Temp.* 
        from Temp where Temp.RowIndex between (@CurrentPage - 1) * @PageSize and @CurrentPage * @PageSize order by Temp.RowIndex';
        
    
    END
    GO

    Temp 临时表会在调用完之后销毁。#临时表 需要单独执行drop删表。

    第二种方法:OFFSET/FETCH NEXT来实现分页,在sql2012中加入的分页方法。

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Liu>
    -- Create date: <Create Date,,2019-12-23>
    -- Description:    <Description,,User表分页>
    -- =============================================
    CREATE PROCEDURE UserPageList
    @CurrentPage int,
    @PageSize int
    AS
    BEGIN
        SET NOCOUNT ON;
        declare
        @SQL nvarchar(max);
        set @SQL='select UserId,UserName from S_USer order by UserId OFFSET @PageSize*(@CurretnPage-1) ROWS FETCH NEXT @PageSize ROWS ONLY';
        
    
    END
    GO

     新特性的语句就像 ModelList.Skip(num).Take(num2);

    SQL server 2012 T-SQL 新特性

  • 相关阅读:
    ORM之聚合和分组查询
    ORM之ManyToManyField操作
    ORM之ForeignKey操作
    ORM之一般操作
    ORM之元信息
    js浮点数的加减乘除
    如何用js去判断当前是否在微信中打开的链接页面
    Vue应用框架整合与实战--Vue技术生态圈篇
    图片纯前端JS压缩的实现
    js要怎么接收后端传的excel文件流?
  • 原文地址:https://www.cnblogs.com/sunShineJing/p/12089882.html
Copyright © 2020-2023  润新知