`

用row_number() over 优化分页查询

阅读更多
SELECT * FROM (
SELECT t.*,row_number() over(ORDER BY n_count DESC) r
FROM t_51xit t
ORDER BY t.n_count DESC
) t
WHERE r BETWEEN 4 AND 6

当查询大表时,特别是当查询结果再写查询语句时,这种写法比下面这种快n倍

SELECT * FROM (
SELECT t.*
FROM t_51xit t
ORDER BY t.n_count DESC
) t
WHERE rumrow between 4 and 6
分享到:
评论

相关推荐

    SQL ROW_NUMBER()分页比较

    在 SQL Server 2005 中,使用 ROW_NUMBER() 函数可以实现分页功能,这种方法相比于 SQL Server 2000 中的分页方式效率要高出很多。但是,很多人在使用 ROW_NUMBER() 函数时,使用的方法并不正确。 在本文中,我们将...

    ROW_NUMBER() OVER函数的基本用法

    1. 分页:可以使用 ROW_NUMBER() OVER 函数来实现数据库的分页功能。 2. 自动添加字段编号:可以使用 ROW_NUMBER() OVER 函数来自动添加字段编号。 3. 数据分析:可以使用 ROW_NUMBER() OVER 函数来对数据进行分析和...

    ROW_NUMBER()函数

    在本文中,我们将详细介绍 ROW_NUMBER() 函数的使用方法和优点,以及如何使用它来实现高效的数据分页。 ROW_NUMBER() 函数的使用方法 --------------------------- ROW_NUMBER() 函数的基本语法是:`ROW_NUMBER() ...

    oracle分析函数row_number() over()使用

    Oracle的分析函数`ROW_NUMBER() OVER()`是一种强大的工具,用于在查询结果集中为每一行分配一个唯一的序列号。这个函数通常用于数据分页、排名或者为特定条件的记录分配顺序。下面我们将详细讨论`ROW_NUMBER() OVER...

    Row_number 分页存储过程

    例如,你可以创建一个名为`Pager_Rownumber`的存储过程,如下所示: ```sql CREATE PROCEDURE Pager_Rownumber @PageNumber INT, @PageSize INT, @OrderColumn NVARCHAR(128), @TableName NVARCHAR(128) AS ...

    row_number.rar_SQL中row_number用法_number

    `ROW_NUMBER()`在数据处理、分页查询、数据排序以及解决复杂的数据分析问题时起到关键作用。以下是对`ROW_NUMBER()`函数的详细解析。 1. **基本语法** `ROW_NUMBER()`函数的基本语法如下: ```sql SELECT ROW_...

    SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较

    rank函数与rank函数类似,同样考虑到了...这些函数在数据分析、报表生成以及分页查询等方面都有广泛应用,理解并掌握它们可以帮助开发者更高效地处理SQL查询任务。在实际使用中,应根据具体需求选择合适的排名函数。

    row_number

    2. **分页查询**:通过 `ROW_NUMBER()` 结合 `WHERE` 子句可以实现简单的分页功能,比如获取第一页的数据,每页显示 10 条记录。 3. **复杂排序**:当需要对多列进行排序时,可以利用 `ROW_NUMBER()` 来实现复杂的...

    sqlserver2005使用row_number() over分页的实现方法

    需要注意的是,`ROW_NUMBER()` 在当前`SELECT`语句中是不可见的,即不能直接在外部查询中使用`RowNumber`进行排序。此外,这种方式比传统的`TOP`和`NOT IN`方法更有效率,因为它避免了多次扫描表。 在SQL Server ...

    深入探讨:oracle中row_number() over()分析函数用法

    `row_number()`函数的一个重要应用场景是在分页查询中。通过结合`row_number()`和`LIMIT`或`OFFSET`(在Oracle中是`ROWNUM`和子查询),我们可以轻松地获取数据集的一部分,这对于大型数据集的显示非常有用。 在...

    SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同

    SELECT row_number() OVER (ORDER BY id ASC) AS rownumber, * FROM ( SELECT * FROM [TCCLine].[dbo].[CLine_CommonImage] ) AS comImg ) AS numComImg WHERE rownumber > 40 ORDER BY rownumber; ``` 这种...

    sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)

    性能分析方面,通常使用ROW_NUMBER()的分页方式在大数据量时更为高效,因为它只需要一次查询就可以完成分页和排序,而无需额外的子查询。不过,如果表上有合适的索引,不使用ROW_NUMBER()的方式也可能有较好的性能。...

    C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序

    ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) ``` 在这个表达式中,`PARTITION BY`用于将数据集划分为多个分区,而`ORDER BY`则定义每个分区内的排序方式。在分页场景中,我们通常不需要分区,只需按照一个...

    Oracle row_number() over()解析函数高效实现分页

    在这个查询中,`row_number() over()`根据`N_COUNT`字段降序地为每一行分配`orderNumber`,然后在外部查询中,我们通过`orderNumber`来筛选出第1至第3条记录,实现分页。 使用`row_number() over()`函数的好处在于...

    SQL Server 2005中ROW_NUMBER()函数在存储过程分页中的应用.pdf

    以下是一个简单的存储过程示例,展示了如何使用`ROW_NUMBER()`进行分页: ```sql CREATE PROCEDURE GetUsersPaged @StartIndex INT, -- 分页起始位置 @PageSize INT -- 每页记录数 AS BEGIN WITH CTE AS ( ...

    sqlServer使用ROW_NUMBER时不排序的解决方法

    设置sqlServer使用ROW_NUMBER时不排序 –1.看到NHibernate是这样写的分页,感觉写起来比较容易理解(应该不会有效率问题吧?) –with只是定一个别名? [sql] with query as (select ROW_NUMBER() over(order by ...

    使用row_number()实现分页实例

    `ROW_NUMBER()`是一个窗口函数,它为查询结果集中的每一行分配一个唯一的行号,这在实现分页查询时非常有用。下面将详细解释如何使用`ROW_NUMBER()`来实现分页以及需要注意的关键点。 首先,`ROW_NUMBER()`函数的...

    SQL2005利用ROW_NUMBER() OVER实现分页功能

    在SQL Server 2005中,为了实现高效的数据分页功能,开发人员常常会使用窗口函数ROW_NUMBER()配合OVER子句。ROW_NUMBER()函数在SQL Server中扮演着为每行分配唯一序列号的角色,这对于分页查询尤其有用。本文将详细...

    各数据库分页语法支持

    使用 `ROW_NUMBER()` 函数为每条记录分配一个唯一编号,并根据这个编号进行分页。 3. **ROWNUM 控制最大条数**: ```sql SELECT * FROM ( SELECT * FROM test t ) XX WHERE ROWNUM ; ``` 这种方法仅用于...

Global site tag (gtag.js) - Google Analytics