初学SQL分页疑惑

问题描述

在网上找到的例子都是基本上是这样:--查询第11-15条记录SELECTTOP5*FROMLeaveWordViewWHEREIDNOTIN(SELECTTOP10IDFROMLeaveWordView)--SELECTTOPPageSize*FROMLeaveWordViewWHEREIDNOTIN(SELECTTOP(PageIndex-1)*PageSizeIDFROMLeaveWordView)有一些疑惑,请各位大神指点,万分感谢!问题如下:(1)就是那个ID是什么?如果这个ID字段是一个自增型字段,那么在执行一些删除操作后应该会出现不连续的现象,这样还能正常分页?(2)照这样看来,是不是每一个表都必须添加一个名为“ID”的字段?

解决方案

解决方案二:
id是主键,排序规则因为可以不连续,所以用的是notin不过你查到的这个是什么时候的版本了现在一般都用rownumber了mssql2012开始只要用offsetfetchnext了
解决方案三:
我昨天刚整理的mssql分页,希望对你有所帮助
解决方案四:
不连续也没关系呀
解决方案五:
还可以这样写啊。。。。。。。。。。。。。。。。。。
解决方案六:
不连续也不影响ID是字段

时间: 2025-01-01 10:46:31

初学SQL分页疑惑的相关文章

asp.net中常用到的SQL分页存储过程

asp.net中常用到的SQL分页存储过程 以下是引用片段:create PROCEDURE [dbo].[myPage] @tblName varchar(255), -- 表名 @fldName varchar(255), -- 排序的字段名,一般为唯一标识 @strGetFields varchar(1000) = ' * ', -- 需要返回的列  @PageSize int = 10, -- 每页有多少条记录 @PageIndex int = 1, -- 第几页 @Count int 

SQL分页方法

方法一: SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id 方法二: SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) A ) O

为什么这条sql分页无效?

问题描述 为什么这条sql分页无效? SELECT * FROM (SELECT ROWNUM rn, stu.* FROM test_tab_stu stu WHERE ROWNUM > 9) WHERE rn < 21; DB结构 id number类型 name varchar2类型 解决方案 [1] rownum不支持以下方式的查询 a: select * from area where rownum > 2; b: select * from area where rownum

SQL点滴16—SQL分页语句总结

原文:SQL点滴16-SQL分页语句总结 今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了. 使用top选项 selecttop10*from Orders a where a.orderid notin(selecttop10 orderid from Orders orderby orderid) orderby a.orderid 使用max函数 这种方法的前提是有唯一值的一个列. selecttop10*from Orders a  where a.or

几种高效mssql server sql分页语句

几种高效mssql server sql分页语句 分页方案三:(利用id大于多少和select top分页)效率最高,需要拼接sql语句 分页方案二:(利用not in和select top分页) 效率次之,需要拼接sql语句www.111cn.net 分页方案一:存储过程相对于大数据量会有明显的优势的  看一个简单存储过程实例的 create procedure pr_getarticles --这里为存储过程名称 @page int , @pagenum int as declare @ta

oracle SQL分页代码

文章提供一个简单的实现的oracle SQL分页代码 ,希望对大家有帮助.   select /*+ ordered use_nl(t1 t2) */ id, user_id, age, gmt_create     from (select rid         from (select rid, rownum as rn             from (select rowid as rid                 from test where user_id = :1   

实现SQL分页的存储过程代码_MsSql

SQL分页的存储过程代码,需要的朋友们直接拿去用,使用非常简单. 分享代码如下 USE [SendMessage] GO /****** Object: StoredProcedure [dbo].[pages] Script Date: 07/09/2015 13:46:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[pages] ( @tbname nvarchar(100), --要

mssql sql 分页语句

mssql sql 分页语句 sql="select top 1 ddd from id,title,time,sum(id) as vv,a.id,b.id where table1,table2astb2 order by a.title like '%"&title&"%' desc" rs.open sql,conn,1,1 if rs.eof then else     ddd = rs("ddd") end if rs

仿百度的sql分页样式分享

   代码如下 复制代码 protected DataTable dtNews ;  const int PAGE_SIZE = 7;  protected string pagestr;  protected string pagestring;  protected void Page_Load(object sender, EventArgs e)  {      string urlParam = Request["p"] ?? string.Empty;      int p