SPI每周一课(46) - SQL语句中的几个排序函数 - Smartplant Instrumentation智慧工厂仪表解决方案 - 鹰图技术 - Powered by Discuz!
搜索

[分享] SPI每周一课(46) - SQL语句中的几个排序函数

[复制链接]
12000

   发表于 2020-1-17 15:59:39 | 显示全部楼层 |阅读模式
Hi All,
    提前祝各位金主爸爸春节快乐!
    在做PSR报表、各类开发时,都会去查询数据库。
    关于生成的结果中,如果需要对结果进行排序,一般来说有几种常用的函数:
  • dense_rank
  • rank
  • row_number
  • rownum

    以最常见的一个索引表为例,需要展示回路和每个回路下的仪表。
           
    可以看下这4个编号函数的情况。
    dense_rank() over (order by loop_name),可以知道目前回路的序号,而每个回路中的每个仪表,编号都是相同的。
    rank() over (order by loop_name),可以知道每个回路第一次出现的序号,而每个回路中的每个仪表,编号都是相同的。因此会是跳号的情况。
    row_number() over (order by loop_name),会按照每一行数据依次展示序号,即从1递增。
    rownum,可以看到在主语句 order by 之前的顺序。在这里的情况,就是cmpnt-id的序号。因为cmpnt-id越小,就说明越早插入到数据库中,排在前面。

    dense-rank,rank,row-numebr还有 xxx over(partition by column1 order by column2 desc) 的用法,各位可以自己百度学习。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0条回复

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|鹰图技术 ( 京ICP备16041111号-1

GMT+8, 2020-8-6 06:23 , Processed in 0.092387 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表