作者:安徒生笔下苍老了谁1_120 | 来源:互联网 | 2023-09-24 14:28
表结构 table1(c1 int)
table1表里数据如下:3
2
2
2
1
我用sql语句查询 select top 3 c1 from table1 order by c1 desc
得到结果如下: 3
2
2
2
为什么结果不是:3
2
2
我需要得到结果是: 3
2
2
那这条SQL该怎样写?
4 个解决方案
再说一遍,select top语句 JET SQL 与 T-SQL 返回的结果是不同的
jet sql 会返回重复值,也就是说,一个表中如果 ORDERBY 的字段都是 0 ,一共有100条记录,即使你用SELECT TOP 1 来返回记录,也同样返回100条记录,因为 JET DB 无从在这100条记录里面判断先后次序,只能返回100条。要解决次问题可以建立一个自动编号字段(id),然后用
select top 1 a,id from tablename order by a,id
同意楼上,不过最后的sql语句,由于id是一个辅助字段,可以去掉,修改为:
select top 3 a from tablename order by a,id
楼上的答案COPY自以下网站
关于此主题请参考:
如何解决 SELECT TOP 1语句竟然返回多条记录的问题?《查询》
http://access911.net/index.asp?u1=a&u2=71FAB41E15DCEFF3