zoukankan      html  css  js  c++  java
  • SQL2005 ROW_NUMBER

    语法:
    ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )
    备注:
    ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。
    参数
    <partition_by_clause>
    将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。
    <order_by_clause>
    确定将 ROW_NUMBER 值分配给分区中的行的顺序。有关详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。
    有关详细信息,请参阅 OVER 子句 (Transact-SQL)。
    例子
    一、以下示例将根据年初至今的销售额,返回 AdventureWorks 中销售人员的 ROW_NUMBER。
    USE AdventureWorks
    GO
    SELECT c.FirstName, c.LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number', s.SalesYTD, a.PostalCode
    FROM Sales.SalesPerson s JOIN Person.Contact c on s.SalesPersonID = c.ContactID
    JOIN Person.Address a ON a.AddressID = c.ContactID
    WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0
    二、以下示例将返回行号为 50 到 60(含)的行,并以 OrderDate 排序。
    USE AdventureWorks;
    GO
    WITH OrderedOrders AS
    (SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (order by OrderDate)as RowNumber
    FROM Sales.SalesOrderHeader )
    SELECT *
    FROM OrderedOrders
    WHERE RowNumber between 50 and 60;
    三、实现分页存储过程(固定到某个表的数据)
     
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:      cxw
    -- Create date: 2006/11/14
    -- Description: 利用Row_Number函数实现分页存储过程
     
    -- exec DividePageForROW_NUMBER 2,1,'',''
     
    -- =============================================
    Create PROCEDURE DividePageForROW_NUMBER
     
    @iPageSize      int         --每页数
    ,@iIndexPage    int         --第几页
    ,@vOrderBy      varchar(50) --排序字段
    ,@iRowCount     int         --总记录数
     
    AS
    BEGIN
    SET NOCOUNT ON;
    with PageTable as
    (
    select row_number() over(order by ReasonID) TID,* from A
    )
    select *
    from PageTable
    where TID between ((@iIndexPage-1)*@iPageSize+1) and @iPageSize*@iIndexPage
     
    SET NOCOUNT OFF;
     
    END
    GO
  • 相关阅读:
    mybatis sql in 查询
    js中同一个onclick绑定了两个js方法出现的问题
    异步ztree 加复选框 及相应后台处理
    让delphi程序不受WINDOWS日期格式的影响
    Delphi调用java开发的WebService,传入参数出错
    在Delphi中实现HexToStr函数和StrToHex函数
    最快的安卓模拟器Genymotion
    详解Android中AsyncTask的使用
    JNI之——&#39;cl&#39; 不是内部或外部命令,也不是可执行的程序或批处理文件
    CorePlot学习六---点击scatterPlot中的symbol点时弹出对应的凝视
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1988438.html
Copyright © 2011-2022 走看看