拆分SQL结果

时间:2012-06-20 15:04:42

标签: sql sql-server sql-server-2008

我有一个SQL语句,它返回许多行,并将这些行插入到VBA中的数组中。然后我循环遍历数组并粘贴到电子表格行中。

我的内存耗尽,因此我想分批进行粘贴。

我不介意每次运行相同的SQL查询来收集数据,只要我能避免内存问题。我怎样才能做到这一点?在我的SQL中我以前使用LIMIT,但在这里我想说选择第一个...... 1000?然后是下一个1000等

2 个答案:

答案 0 :(得分:1)

要“选择第一个...... 1000?然后选择下一个1000”,请执行以下操作:

SELECT * FROM table
LIMIT <limit>
OFFSET <batch * limit>

其中限制等于1000,您的批次将从0开始,每次调用增加1

答案 1 :(得分:1)

我发现最简单的方法是通过传入2个参数来创建一个使用基本分页函数的存储过程调用:每页行数和请求页面。

查看此问题:How to do pagination in SQL Server 2008

如果您以编程方式调用存储过程,则可以使用while循环,直到没有得到任何结果。