2015-05-27 57 views
1

我有一个temp_table,它由80多行组成。 在aqua我不能做select *由于空间/内存限制我猜。如何做在特定的表上按范围选择查询范围

select * from #tmp 

有没有办法按范围选择查询范围?

例如: - 先给我10000条记录,接着10000和接下来的10000条,直到最后。

注: -

1) I am using Aqua Data Studio, where I am restricted to select max 5000 rows in one select query. 

    2) I am using Sybase, which somehow doesn't allow 'except' and 'select top @var from table' syntax and ROWNUM() is not avaliable 

谢谢!

+0

你可以通过一个程序做到这一点。的 – Rahul

+0

可能重复[如何获得N行从行M在T-SQL开始从排序表(http://stackoverflow.com/questions/758186/how-to-get-n-rows-starting-from-row -m-从排序表功能于T-SQL)的 –

+0

可能重复(http://stackoverflow.com/questions/7759166/sybase-offset-for-pagination) – rutter

回答

0

难道你们就不能使用类似与在表中的

select top n * from table where some_id > current_iteration_starting_point 

select top 200 * from tablename where some_id > 1 

和不断增加的iteration_starting_point条款上的一些标识为1的下一次迭代,因此说201上。

+1

,将永远给顶'N'记录,没有一系列的M'和'N' –

0

您可以在SQL Server中使用类似下面的内容。只需为每个新迭代更新@FirstRow。

declare @FirstRow int = 0 
declare @Rows int = 10000 

select top (@[email protected]) * from Table 
except 
select top (@FirstRow) * from Table 

set @FirstRow = @FirstRow + @Rows 

select top (@[email protected]) * from Table 
except 
select top (@FirstRow) * from Table 
+0

这是一个很好的解决方案之间'记录,但在我使用的Sybase中不允许使用语法 – SRJ