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





