SQL常用分页的办法(zt)

CELF(Cost-Effective Lazy Forward selection)具有成本效益的惰性前向选择算法 CELF(Cost-Effective Lazy Forward selection)算法解析      引言:在社交网络影响力最大化问题的求解过程中,我们往往需要去选择一些目标种子结点作为信息初始传播的源头。贪婪算法在传播效果上的解决可以达到影响的最大化,但是在时间复杂度上面显得确十分糟糕。为此CELF算法应势而生,CELF算法利用了函数次模性的特点,在第一轮选择种子结点时,计算网络中所有节点的边际收益,但将在之后的过程中,不再做网络节点边际收益的重复计算,这相对于传统的贪婪算法,将在时间上得到非常明显的 阅读详情

应一个朋友的要求,贴上收藏的SQL常用分页的办法~~

表中主键必须为标识列,[ID] int IDENTITY (1,1)

1.分页方案一:(利用Not In和SELECT TOP分页)

语句形式: 
SELECT TOP 页记录数量 *
FROM 表名
WHERE (ID NOT IN
  (SELECT TOP (每页行数*(页数-1)) ID
  FROM 表名
  ORDER BY ID))
  ORDER BY ID
//自己还可以加上一些查询条件


例:
select top 2 *
from Sys_Material_Type
where (MT_ID not in
    (select top (2*(3-1)) MT_ID from Sys_Material_Type  order by MT_ID))
order by MT_ID



2.分页方案二:(利用ID大于多少和SELECT TOP分页)

语句形式:
SELECT TOP 每页记录数量 *
FROM 表名
WHERE (ID >
          (SELECT MAX(id)
    FROM (SELECT TOP 每页行数*页数 id  FROM 表
          ORDER BY id) AS T)
      )
ORDER BY ID

例:
SELECT TOP 2 *
FROM Sys_Material_Type
WHERE (MT_ID >
          (SELECT MAX(MT_ID)
          FROM (SELECT TOP (2*(3-1)) MT_ID
                FROM Sys_Material_Type
                ORDER BY MT_ID) AS T))
ORDER BY MT_ID



3.分页方案三:(利用SQL的游标存储过程分页)
create  procedure SqlPager
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off



4.总结:
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。

通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页)  效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用

[Dify] HTTP 请求节点总是调不通?先把请求头、参数、变量和返回 JSON 拆开查 这篇文章围绕 Dify HTTP 请求节点调不通、接口能通但流程不稳定、返回 JSON 后续节点读不到等问题展开,从 Method、URL、Header、Body、变量映射和返回字段提取几个角度梳理排查顺序。适合正在把 Dify Workflow 接入企业微信、CRM、工单系统或内部接口的读者阅读,帮助你把接口调用从一次性跑通推进到可复用、可验证的业务流程。 阅读详情

相关推荐

别再手动拆解字节了!用博图这个功能指令,5分钟搞定ARRAY转BOOL数组

本文详细介绍了西门子博图中`ARRAY_TO_BOOL`功能指令的高效应用,帮助工程师快速实现ARRAY到BOOL数组的转换。通过实战案例和参数配置指南,展示了如何5分钟内完成传统方法需半小时的任务,大幅提升PLC编程效率,特别适用于通信报文解析和设备状态监控。

weixin_42653691的博客 265

三种SQL分页法

三种SQL分页法    表中主键必须为标识列,[ID] int IDENTITY (1,1)  1.分页方案一:(利用Not In和SELECT TOP分页)语句形式:   SELECT TOP 10 *FROM TestTableWHERE (ID NOT IN          (SELECT TOP 20 id         FROM TestTable         ORDER BY

逝去的41WDfWQ%5mW60F 1976

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

tomcat启动时,启动过程日志中文乱码的处理方法。

寻码启示 1946

sql分页查询与offset的使用

sql分页查询,实际上就是假设有100条数据,分10页 每页去查询出相应的10条数据。 name score 小陈 88 小李 98 小雷 95 第一页: select * from table order by score limit 2 offset 0; 表示分页查询 按成绩排序,每页两条,从第一条数据开始 第二页: select * from table order by score limit 2 offset 2; 表示分页查询 按成绩排序,每页两条,从第三条数据开

MndBng的博客 2872

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5632

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

sql分页存储过程

 /*分页存储过程 Descript:分页存储过程 */ CREATE PROCEDURE database_PageList( @tblName nvarchar(200), ----要显示的表或多个表的连接 @fldName nvarchar(200) = *, ----要显示的字段列表 @pageSize int, ----每页显示的记

XdsSunny的专栏 481

ptrade从零开始学习量化交易第166期【ptrade量化策略研究参考--三个因子挖掘思路】

三个因子挖掘思路

GJ57017_wx的博客 1250

sql分页(2)利用ID大于多少和SELECT TOP分页

sql分页(2)利用ID大于多少和SELECT TOP分页 1.创建表以及数据的插入在第一篇文章中 2.利用ID大于多少和SELECT TOP分页 SELECT TOP 10 * FROM TestTable WHERE (ID > (SELECT MAX(id) FROM (SELECT TOP 20 id FROM

刘岩的专栏 1941

【AI智能体】Claude Code 核心记忆文件 CLAUDE.md实战操作详解

Claude Code 核心记忆文件 CLAUDE.md实战操作详解

congge 5459

图像分割 - 使用Mask R-CNN模型在COCO数据集上进行图像分割任务

图像分割是计算机视觉领域的一个重要任务,它旨在将图像中的每个像素分类为对象或背景。Mask R-CNN是一种基于区域的卷积神经网络,可用于图像分割任务。它是Faster R-CNN的扩展,将目标检测与图像分割结合起来,能够同时检测和分割对象。在本博客中,我们将使用Mask R-CNN模型在COCO数据集上进行图像分割任务。我们将介绍如何下载和准备COCO数据集,以及如何使用Mask R-CNN模型进行训练和推理。

斌擎科技 1190

防SQL注入:生成参数化的通用分页查询语句 zt

防SQL注入:生成参数化的通用分页查询语句 前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程。使用这种通用的存储过程进行分页查询,想要防SQL注入,只能对输入的参数进行过滤,例如将一个单引号“'”转换成两个单引号“''”,但这种做法是不安全的,厉害的黑客可以通过编码的方式绕过单引号...

159

基于Python的彭博社新闻高效爬取实战:最新技术与完整代码解析

本文将详细介绍如何使用Python最新技术构建一个高效的彭博社(Bloomberg)新闻爬虫系统。我们将从爬虫基础概念讲起,逐步深入到高级反反爬技术、异步抓取、数据解析与存储等核心环节。文章包含完整的代码实现,采用最新的aiohttp、Playwright等技术栈,并特别关注法律合规性和数据质量保障。通过本文,读者将掌握一个完整的商业新闻爬虫开发流程,并能够根据实际需求进行定制化开发。关键词:Python爬虫、彭博社、Bloomberg、新闻采集、aiohttp、Playwright、反反爬技术。

2201_76125261的博客 1503

如此高效通用的分页存储过程是带有sql注入漏洞的zt

http://www.cnblogs.com/yukaizhao/archive/2007/03/09/pagination_proc_problem.html 在google中搜索“分页存储过程”会出来好多结果,是大家常用的分页存储过程,今天我却要说它是有漏洞的,而且漏洞无法通过修改存储过程进行补救,如果你觉得我错了,请读下去也许你会改变看法。 通常大家都会...

176

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

维护常用SQL语句收集[ZT]

维护常用SQL语句收集 大家在日常维护oracle的时候肯定用到很多语句的,希望大家晒一晒,大家共同学习,共同进步。 我先献丑了,都是一些找到的语句,但是还蛮实用的: 1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespac...

abc123098098的博客 106

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Sybase,Oracle,sqlserver中sql分页的方法汇总

Sybase 因为Sybase数据本身的局限性,要实现分页相对其它数据来说还是比较麻烦. --方法1, --这个方法从网上找来的,好处可直接传入SQL,并且对传入的SQL语句没有什么限制,合法的就行, --缺点是需要的权限较大,因为需要创建临时表 CREATE PROCEDURE GetDataByPage( @S

mao_zh的专栏 952

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

zt ASP学习史上最强的数据分页方法

  我观前辈的帖子,皆由于数据库的SQL大不一致,且SQL SERVER,ACCESS等菜鸟级数据库没有如rowid,_n_,obs等之类的辅助列,空有BETWEEN运算符而无用武之地,又无如except之类的数据集运算符,真是令无数英雄尽折腰   偶详观各数据库SQL,得出是数据库就有取前面N条记录的SQL语法,如什么select top n*****之类的语法,而数据分页的关键问题是取后N

刘永锋的专栏 902

[ZT]利用Sql Server 2005的新函數ROW_NUMBER()寫的高效分頁存儲過程

文章來源:網絡 微軟最新發佈的MSSQL2005,對TSQL進行了小規模的加強,有些函數的確非常實用。就比如ROW_NUMBER()函數,實現了原先一直要用存儲過程來進行大數據分頁的功能。現在有了這個函數,只要簡單一個語句就能解決任何情況下的數據分頁,不管你要排序的字段是否唯一。  個人感覺,這個函數應該能再進的一步優化性能,當然這個工作不是我們所能為,MS不去開發,我們就沒辦法了。 ...

banglvfei0870的博客 93

[ZT]海量数据库的查询优化及分页算法方案

这两天在搞数据库的查询优化 :) 在以下的文章中,将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] ( --TGongwen是红头文件表名 [Gid] [int] IDE...

144

ZT: 提高SQL性能的措施

提高SQL性能的措施! 最后出处:http://www.ourasp.net/ 作者:石骁騑 收录于:2001年12月19日 一、问题的提出在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方

foreveryday007's BLOG 1893

SQL通用分页存储过程

ZT. http://hi.baidu.com/lecherline/blog/item/8feebe5145959d2542a75beb.html 好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(也可能是我不够见多识广啊,呵呵),比如下面这句...

justshare的专栏 131

Oracle SQL optimization(zt)

Oracle SQL optimization(摘自SAP Note 766349) Symptom1. What is SQL optimization?2. How important is SQL optimization...

congnen9588的博客 353

ZT:ORACLE 中常用的查看数据库的SQL

http://blog.youkuaiyun.com/fangke/archive/2004/09/23/114714.aspx常用的查看数据库的SQL查看数据库的SQL 1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_fil

foreveryday007's BLOG 1093

oracle经典表,oracle常用经典SQL查询(zt)

.[@more@]1、查看表空间的名称及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;2、查...

weixin_39712611的博客 182

mysql中councat_devsap_new.sql

USE [DEVSAP_NEW]GO/****** Object: Table [dbo].[ZT001] Script Date: 05/09/2014 15:08:11 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[ZT001]([BUKRS] [nvarchar](4) NOT NULL...

weixin_33785291的博客 784

zt: SQL*PLUS常用命令和Decode()函数使用技巧

 函数使用:????? DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)? Function????????????????????????????????? Result CONCAT(‘Good’,’String’)??????????????????? ‘Good String’ SUBSTR(‘String’,1,3)?

foreveryday007's BLOG 1839
上一篇: 同步和互斥的一些解答
下一篇: 给自己的软件添加后门
blacksapper
博客等级 码龄19年 20粉丝 81原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值