如何在SQLServer中实现MySQL的Limit m,n功能


先放SQL语句

select top n id from 表名 
where id not in (  
  select top m id from 表名  
)  

之前因为这个问题在网上找答案,结果让们都告诉我是这个:

这明显是扯淡!

连limit m,n的含义都没弄清楚,

limit m, m的含义

  • limit m,n是mysql的语法

    select * from table limit [m],n;

    其中,m—— [m]为可选,是偏移量,如果填写表示skip步长,即跳过m条;不填写表示默认为0;

      n——显示条数。指从第m+1条记录开始,取n条记录。

  • 而在网上的这个说法中把limit m,n定义成了获取m到n的记录数,这是不对的

  • limit m,n的意思是获取表中第m+1条开始往后n条的记录数
    也就是说,limit 8,5 表示获取表中的第(8+1)到(8+5)条记录数,而根据网上的说法5-8明显是行不通的!

测试

下面图中,左边是MySQL的表和操作结果,右边是SQLServer的表和操作结果,证明真正的实现limit m,n的代码应该是

select top n id from 表名 
where id not in (  
  select top m id from 表名  
)  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM