请问:在SQL查询时怎么才返回指定数量的记录数
比如说,我只想看前面10行意思意思,有没有办法用SQL做到,如果有,请问SQL语句怎么写? 问题点数:64、回复次数:13Top
1 楼ePing(是谁动了我的CSDN的ID?)回复于 2001-12-07 17:31:19 得分 0
SELECT Top 10 * FROM YourTableTop
2 楼hugsnow(抱雪)回复于 2001-12-07 17:55:05 得分 0
谢谢,但是如果我需要第80~100条记录呢?Top
3 楼TR@SOE()回复于 2001-12-07 19:06:00 得分 0
用RANKING子句。我不熟悉,只是有这个印象。Top
4 楼wyb_45(小兵)回复于 2001-12-08 09:26:06 得分 0
在ORACLE里,
select * from table where rownum<10
显示前面10行
其它数据库不清楚。
如果建表时建一个myid,就好处理了。Top
5 楼doudou536(小豆冰棍)回复于 2001-12-08 10:57:19 得分 0
Qry->SQL->Clear();
as="select * from "name+where 序号>80 and 序号<100";
Qry->SQL->Add(as);
Qry->Open();
....
Top
6 楼Richardw(真亦假|梦似幻-[瑞克])回复于 2001-12-08 11:52:17 得分 0
学习Top
7 楼TR@SOE()回复于 2001-12-09 08:23:49 得分 0
小兵说的MYID和豆豆的方法在数据库没有更改(删除/增加)的情况下可以使用。但是一旦发生删除记录的情况,就不好办了;增加记录也会变得很困难。所以不是最好。
应该是用ROWNUM,RANKING之类的东西。Top
8 楼hugsnow(抱雪)回复于 2001-12-23 00:11:19 得分 0
没有人知道?
请大家再看看Top
9 楼VSaber(☆浪人☆)回复于 2001-12-23 00:36:26 得分 64
sqlserver比较麻烦,没有选择第n到n+x条纪录的sql语句,只能通过ado分页,
不过提供一个办法,嵌套查询:select top 10 from (select top 20 from table 反序排列)正序排列Top
10 楼hugsnow(抱雪)回复于 2001-12-23 11:14:23 得分 0
VSaber(☆浪人☆) 的办法看起来好像不错,我试试之后就给分Top
11 楼yo_quan(噢迈高)回复于 2001-12-23 11:22:48 得分 0
wyb_45(小兵)
知道oracle 中的pl/sql和其他一些帮助文件在哪里吗?Top
12 楼hugsnow(抱雪)回复于 2001-12-23 19:18:51 得分 0
VSaber(☆浪人☆) 的方法还真的可行!谢谢了Top
13 楼VSaber(☆浪人☆)回复于 2001-12-23 21:05:01 得分 0
呵呵,分又长了
不过嵌套查询毕竟效率不是最好的,
可惜sqlserver就是不支持sql语句写分页,
倒是mysql这些都支持!真气人!Top





