位置: 编程技术 - 正文

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)

  • 递延所得税资产会计处理全过程
  • 出口关税税率表
  • 缴纳税收凭证有原件吗
  • 调整未分配利润影响所得税吗
  • 零星采购不要发票可以吗
  • 企业垃圾处理费计入什么科目
  • 过路费是来回收费还是单向
  • 小规模纳税人不允许开具零税率发票
  • 行政单位盘盈固定资产应按什么入账
  • 企业收到的投资者的超出其在企业
  • 预算报表分析报告
  • 房产企业土地增值税税率
  • 印花税按什么征收
  • 海关废品回收
  • 抵押贷款评估费用标准
  • 无形资产减值准备
  • 抵扣上月留抵税额的分录
  • 利息股息红利所得个人所得税怎么算
  • 公司开租房发票,税钱由公司承担
  • 企业增值税不可以跨月交吗
  • 煤炭企业税收政策
  • 税控盘证书密码一天可以输几次
  • 企业发放给员工子女抚养费
  • 会议案例分析题及答案
  • 房地产公司基础设施建设费包括哪些费用
  • 付工程款现金怎么做凭证?
  • 工会费是税前扣除还是税后扣除
  • 住房公积金利息怎么算的
  • 代开的增值税怎么计提?
  • 发票填开有哪些规范性要求
  • html怎么做
  • 机关事业单位体检费用标准规定
  • 增值税核算应采用什么科目
  • php和ajax用哪个调用数据
  • vue动态组件component原理
  • 持有至到期投资账务处理
  • Python计算机视觉———照相机标定
  • iscsiadm命令详解
  • 租入厂房需做环保检测吗
  • 哪些可以计入研发费用
  • 员工体检费发票可以抵扣进项吗
  • 其他权益工具投资是金融资产吗
  • 商业承兑汇票贴现率
  • 坏账核销会计处理
  • 分公司撤销跨区经营
  • 期权费如何入账
  • 土地租金计入什么会计科目
  • 职工报销费用
  • 车保险返点如何计算
  • 借别人钱收据怎么写
  • 企业注销时实收资本怎么处理
  • 建筑公司工程外包 税务
  • 交易性金融资产的账务处理
  • 销售返现如何做账务处理
  • 员工奖励的现金有哪些
  • 分包开给总包的票,能不能抵扣
  • 其他应收款核算什么
  • 收到劳务费
  • 小企业会计准则会计科目表
  • 公司怎么建
  • 数据库分页存储方法
  • MySQL中实现插入或更新操作(类似Oracle的merge语句)
  • XP系统如何设置U盘启动
  • 苹pp助手
  • Win7系统打开文件夹没有自动排列选项
  • aow exe是什么
  • 怎么看win8.1的版本
  • Extjs优化(一)删除冗余代码提高运行速度
  • python中pillow模块
  • jquery轮播图代码
  • js中布尔值为false的六种情况
  • python 元类的作用
  • python 判断字符串编码
  • 河北省国家税务局电子税务局
  • 怎样在电子税务局查询财务报表
  • 浙江国家税务局电子税务局官网入口
  • 生猪屠宰企业报价
  • 潍坊市区面积多大
  • 试运行期间的收入应如何处理
  • 委托贷款的手续费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设