位置: 编程技术 - 正文

SqlServer 2005 T-SQL Query 学习笔记(3)

编辑:rootadmin

AD HOC PAGING:

就是指用页面的序号和页面的大小请求一个单独的页面。下面是例子。

DECLARE @pagesize AS INT, @pagenum AS INT;SET @pagesize = 5;SET @pagenum = 2;WITH SalesCTE AS( SELECT ROW_NUMBER() OVER(ORDER BY qty, empid) AS rownum, empid, mgrid, qty FROM dbo.Sales)SELECT rownum, empid, mgrid, qtyFROM SalesCTEWHERE rownum > @pagesize * (@pagenum-1) AND rownum <= @pagesize * @pagenumORDER BY rownum; 说明:在上个例子中,其实SQL只审视了行(2*5),也就是说,查看N页的话,SQL只查到N的页的数据,N页后面的数据一概不查看。 另外,每当移动一页,都会把这页放进缓存里,因此每次查询,就是逻辑查询(缓存)+物理查询的过程。物理查询只需要查询新请求的页即可,其他全部在缓存里执行,这样大大加快了查询速度。

MULTIPAGE ACCESS:

如果结果集不是很大,而且分了多个请求页面,请求也不向前移动,那么这是一个好的方案:首先在一个表里使用ROW_NUMBER具体化所有的页,然后创建一个群集索引。下面是例子。

首先创建按ROW_NUMBER把列编好,

SELECT ROW_NUMBER() OVER(ORDER BY qty, empid) AS rownum, empid, mgrid, qty INTO #SalesRN FROM dbo.Sales;CREATE UNIQUE CLUSTERED INDEX idx_rn ON #SalesRN(rownum);

然后直接按ROWNUM查询,

DECLARE @pagesize AS INT, @pagenum AS INT; SET @pagesize = 5; SET @pagenum = 2; SELECT rownum, empid, mgrid, qty FROM #SalesRN WHERE rownum BETWEEN @pagesize * (@pagenum-1) + 1 AND @pagesize * @pagenum ORDER BY rownum;

RANK & DENSE RANK

这2个函数和ROW_NUMBER的区别是:ROW_NUMBER在ORDER BY的条件里有重复行存在的话,是把这些重复行也按INDEX排列的,但是RANK和DENSE RANK总是确定的,即只要是ORDER BY重复的行,他们是统一INDEX的。

RANK和DENSE_RANK的区别是,RANK是如果上级的INDEX和下级的INDEX有可能不是+1关系,是按下级真正处于列里的位置进行INDEX,而DENSE_RANK是按照跟上级的INDEX+1的关系进行的编码。

比如:

SELECT empid, qty, RANK() OVER(ORDER BY qty) AS rnk, DENSE_RANK() OVER(ORDER BY qty) AS drnk FROM dbo.Sales ORDER BY qty;

NTILE

NTILE的用法和其他的RANK函数一样,只不过它可以传入一个参数,用来决定最大的INDEX是多少:它会按行数进行除法,然后平均分配行数进行INDEX的标示。

比如,如果有列,那么首先/3=3,3列一组作为一个INDEX,然后,%3=2,这2列会分别加在前面的2组上。

比如,

SELECT empid, qty, CASE NTILE(3) OVER(ORDER BY qty, empid) WHEN 1 THEN 'low' WHEN 2 THEN 'medium' WHEN 3 THEN 'high' END AS lvlFROM dbo.SalesORDER BY qty, empid;

推荐整理分享SqlServer 2005 T-SQL Query 学习笔记(3),希望有所帮助,仅作参考,欢迎阅读内容。

SqlServer 2005 T-SQL Query 学习笔记(3)

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

SqlServer T-SQL Query 学习笔记(4) 比如,我要建立一个1,,行的数字表:CREATETABLEdbo.Nums(nINTNOTNULLPRIMARYKEY);DECLARE@maxASINT,@rcASINT;SET@max=;SET@rc=1;INSERTINTONumsVALUES(1);WHILE@rc*2=@maxBEGININSE

SQLserver 文件和文件组的作用说明 1、文件和文件组的含义与关系每个数据库有一个主数据文件.和若干个从文件。文件是数据库的物理体现。文件组可以包括分布在多个逻辑分区的文件,

sql 批量更新问题的解决方法 首先注意Statement和PreparedStatement的问题Statementsm=cn.createStatement();sm.addBatch(sql1);sm.addBatch(sql2);...sm.executeBatch()用Statement的好处就是每次可以直接传一个SQL语

标签: SqlServer 2005 T-SQL Query 学习笔记(3)

本文链接地址:https://www.jiuchutong.com/biancheng/319298.html 转载请保留说明!

上一篇:SqlServer 2005 T-SQL Query 学习笔记(2)

下一篇:SqlServer 2005 T-SQL Query 学习笔记(4)

  • 代缴税费
  • 企业发生的哪些成本可以在企业所得税税前扣除
  • 资产负债表应收账款等于什么
  • 境外所得抵免限额小于实际缴纳
  • 为什么购买的货没有发票
  • 利息保障倍数计算公式资本化利息
  • 出纳在银行领了钱出纳要怎样记帐?
  • 现代服务业营改增前后税率对比表
  • 收到车辆保险返还会计分录
  • 没交社保能扣工伤保险吗
  • 核定征收的小微企业企业所得税计算
  • 职工福利费为什么是14%
  • 统一社会信用代码查询和税号一致吗
  • 委托研发受托方怎么做账
  • 固定资产处置计算公式
  • 免征的税额当月计入营业外收入吗
  • 本月没开发票怎样报税
  • 投资类公司增资
  • 鸿蒙系统怎么升级3.0
  • 进货的运费怎么计算
  • 开发票原则是收款之后才能开具吗
  • 有限公司注册资金多少好
  • win11任务栏全部显示
  • 安装win7系统的硬件要求
  • win10提示病毒
  • php pulsar
  • 与资产相关的政府补助所得税处理
  • 冬日里的科赫尔湖,德国巴伐利亚州 (© Reinhard Schmid/eStock Photo)
  • 企业雇佣临时工个税
  • 微前端Qiankun 子应用css后加载问题
  • 资产负债表利润表和现金流量表
  • Access-Control-Allow-Origin 翻译
  • php 解压缩
  • 第十四届中国大学生数学竞赛
  • grpc 调试工具
  • 坏账准备的账务处理例题
  • 员工出差的费用计入什么科目
  • 用于职工福利的进项税账务处理
  • 厂房转租会计分录
  • 帝国cms界面
  • 用友怎么取消对账结果
  • 汇兑损益一级科目
  • 普通发票能做进项吗
  • 企业所得税营业外收入
  • 企业所得税是指哪些
  • 增值税抵扣了,主要成本怎么算
  • 多交个税收到退回怎么办
  • 收到工会经费怎么指定现金流入
  • 人民币报关退税流程
  • 交增值税如何计算
  • 用友u8怎样查询上个月凭证
  • 机票抵扣怎么填申报表
  • 新公司现金日记账怎么记账的
  • python的底层语言
  • mysql 通过拷贝数据文件的方式进行数据库迁移实例
  • win7系统环境变量无法编辑怎么办
  • centos8 固态硬盘
  • centos ll
  • centos怎么安装
  • iis安装失败找不到源文件
  • window10软件搜索
  • w10版本更新
  • win10预览版桌面图标和任务栏不翼而飞怎么办?
  • win10系统附件在哪里
  • Bootstrap与KnockoutJs相结合实现分页效果实例详解
  • 如何使用node.js
  • 支持google play
  • android中的布局分为6种,分别是
  • jQuery的extend方法【三种】
  • linux自动清理磁盘空间
  • 文章标题作用答题模板
  • vue自定义组件v-html
  • JavaScript Switch 声明
  • android 自定义style
  • 省委巡视组收到的案件线索怎么分配
  • 怎么查询企业类别
  • 资源税的税目有7个,其中不包括
  • 地税客服电话
  • 内蒙古机关事业单位工资调整最新消息
  • 在国税局工作属于什么职业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设