关于sql语句中top + order by语句出现多提取问题的解决[cherryt笔记]

本文介绍了一种在SQL中使用TOP 10进行查询时遇到的问题及解决方案。最初作者使用了带有ORDER BY snum的查询语句,但发现返回的结果超出预期数量。经过排查发现原因是snum字段存在重复值,导致TOP计数不准确。最终通过添加额外的排序字段解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一开始 我的查询语句是这样的:

sql = "select top 10 * from student order by snum"; 

结果每次都查出19条

找来找去搞不定 后来把order的去了 就恢复正常了

可这样就实现不了功能了

最后终于发现问题所在:

原来snum有重复的 top把 重复的当成同一个来算

于是解决办法是再加上一个独立的表项来限制

最后查询语句是这样的

sql = "select top 10 * from student order by snum,id"; 

搞定!

ps:还是mysql好用 limit n,m就好了...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值