请教使用SQL
登录 | 论坛导航 -> 华新鲜事 -> 社会百科 | 本帖共有 10 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:我心为谁动 (等级:3 - 略知一二,发帖:515) 发表:2002-12-20 10:01:45  楼主  关注此帖
请教使用SQL
如果数据库里有很多数据, 由于内存有限, 每次我只取固定数目的数据, 比如每次取100行, 下一次再取接着的100行, 应该怎么写? 谢谢.

table name: table
Select name from table

?
?
?
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:SmellsLikeTeenSpirit (等级:11 - 出神入化,发帖:6371) 发表:2002-12-20 10:17:29  2楼 评分:
you can write a SQL such that
the top 100 records are return by using an estimated cutoff.

if you are using MSSQL+ASP.NET, you can query with a method rank(int numberofrecords) or somthing similar. not sure about other databases/data access technology
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:我心为谁动 (等级:3 - 略知一二,发帖:515) 发表:2002-12-20 10:23:40  3楼
you can write a SQL such thatthe top 100 records are return by using an estimated cutoff. if you are using MSSQL+ASP.NET, you can query with a method rank(int numberofrecords) or somthing similar. not sure about other databases/data access technology
ok, thank you. but
i am using java with a oracle database. the rank method, is it a standard sql function or only provided by MSsql+ASP.net?
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:Flying (等级:18 - 华新水车,发帖:16849) 发表:2002-12-20 10:55:31  4楼
ok, thank you. buti am using java with a oracle database. the rank method, is it a standard sql function or only provided by MSsql+ASP.net?
No need ASP.NET lah.
Try to create a cursor on your select query and retreat data entry by entry.
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:我心为谁动 (等级:3 - 略知一二,发帖:515) 发表:2002-12-20 11:06:46  5楼
No need ASP.NET lah.Try to create a cursor on your select query and retreat data entry by entry.
can you demonstrate how to do that? thank you
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:恐龙特急克塞号 (等级:2 - 初出茅庐,发帖:96) 发表:2002-12-20 11:14:11  6楼 评分:
这个问题挺有意思,我们研究研究
如果你不能改变table schema的话, 我想只能选取100行,而接着的100行就不能选. 我想你用的是JDBC driver. Statement class 里有个 setFetchSize(int rows) method, 你可以设rows 为100 in your case.

如果你能改变database table schema 的话, 你可以给那个table 多加一个 column是row 的index. 这样每次你选index从当前值到增加100, 然后更新当前index值.

你试试.:)
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:SmellsLikeTeenSpirit (等级:11 - 出神入化,发帖:6371) 发表:2002-12-20 11:37:42  7楼
No need ASP.NET lah.Try to create a cursor on your select query and retreat data entry by entry.
hmm....cursor, another advanced non-SQL thingy?
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:我心为谁动 (等级:3 - 略知一二,发帖:515) 发表:2002-12-20 12:10:50  8楼
这个问题挺有意思,我们研究研究如果你不能改变table schema的话, 我想只能选取100行,而接着的100行就不能选. 我想你用的是JDBC driver. Statement class 里有个 setFetchSize(int rows) method, 你可以设rows 为100 in your case. 如果你能改变database table schema 的话, 你可以给那个table 多加一个 column是row 的index. 这样每次你选index从当前值到增加100, 然后更新当前index值. 你试试.:)
enn...
如果我有选择条件, 那么它去数据时是先取100行在根据条件过滤, 还是先过滤再取100行呢? 好像后者的可能性比较大
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:恐龙特急克塞号 (等级:2 - 初出茅庐,发帖:96) 发表:2002-12-20 13:17:41  9楼
enn...如果我有选择条件, 那么它去数据时是先取100行在根据条件过滤, 还是先过滤再取100行呢? 好像后者的可能性比较大
其实我没试过:)
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:恐龙特急克塞号 (等级:2 - 初出茅庐,发帖:96) 发表:2002-12-20 13:18:44  10楼
hmm....cursor, another advanced non-SQL thingy?
dynamic sql
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
论坛导航 -> 华新鲜事 -> 社会百科 | 返回上一页 | 本主题共有 10 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码