2013-07-22 3 views
1

Я ищу способ вернуть строки таблицы между диапазоном, например, как бы получить строки от 100 до 200 в таблице, содержащей 10 000 строк?Результаты SQL по количеству строк count

Это не основано ни на одном из данных в строке, а первичный ключ, хотя и инкрементный, не может использоваться в качестве индекса.

Я работаю с довольно большой таблицей, которая должна быть показана пользователю в приложении. Сейчас я получаю все записи и используя массив Java, чтобы получить строки x для y, чтобы отправить обратно пользователю через Ajax (веб-приложение).

Этот метод занимает гораздо больше времени, чем хотелось бы (хотя и меньше, чем отправка всех записей пользователю сразу), поэтому я хотел бы просто запросить нужные мне записи.

Любая помощь приветствуется, спасибо!

+4

В какой среде SQL вы работаете? Кроме того, нам нужно будет разобраться в чем-то, чтобы концепция Row Numbers делала какой-то смысл. –

ответ

0

что-то подобное может помочь вам ....

SELECT PriceRank, ProductName, UnitPrice 
    FROM 
     (SELECT ProductName, UnitPrice, 
      ROW_NUMBER() OVER(ORDER BY UnitPrice DESC) AS PriceRank 
     FROM Products 
     ) AS ProductsWithRowNumber 
    WHERE PriceRank > <i>StartRowIndex</i> AND 
     PriceRank <= (<i>StartRowIndex</i> + <i>MaximumRows</i>) 

http://msdn.microsoft.com/en-us/library/bb445504.aspx

+0

@kevin Спасибо за редактирование –

0

Вы можете использовать LIMIT, но вы также должны заказать строки.

select * 
from table 
order by id -- very important 
limit 100,100 

Если вы не заказывали строк, теоретически можно всегда получить же 100 строк при изменении исходного ряда. Это связано с тем, что неупорядоченные запросы могут возвращать строки в в любом порядке, и он будет зависеть от других запущенных одновременно запросов и каких строк кэшируется в памяти и т. Д.

Смежные вопросы