2013-04-12 3 views
0

У меня есть больше записей в моей базе данных. поэтому я хочу выбрать первую 10 000 записей. Затем мне нужно продолжить выбор из следующих записей, означая следующие 10,001 для получения некоторых значений. Как поставить запрос здесь?выберите следующие строки в sql

Любая идея для меня полезная.

+0

«У меня более 70 000 записей» - Поздравляем! Скоро вы попадете в клуб 100K строк! –

+0

Поиск «эффективного пейджинга» –

+0

Г-н Митч не играет в комедийные роли здесь. Вам нужно обратиться к faq. – Duk

ответ

0

Я предполагаю, что вы хотите, чтобы выбрать из строк 10001

Чтобы получить следующие 1000 строк вы можете сделать:

SELECT TOP 1000 * FROM 
TABLE 
WHERE ID >= 10001 

Или просто применить AND пункт в WHERE который будет возвращать строки 10001 - 15001 :

SELECT * FROM 
TABLE 
WHERE ID >= 10001 AND ID <= 15001 
+0

Работает. Thanks – Duk

1

Первые 10 000 записей, а затем остальные записи;

SELECT TOP 10000 * FROM table ORDER BY Id 
DECLARE @count int; 
SET @count = (SELECT COUNT(*) FROM table); 
SELECT TOP (@count - 10000) * FROM table ORDER BY Id DESC; 
+0

Что здесь происходит? –

+0

Что? Что здесь происходит? – Duk

+0

На самом деле вы выбираете первый 10000 строк, а затем выбираете от 10001 до числа строк –

2

Если у вас нету ID строки в таблице, или ID не IDENTITY, вы можете использовать функцию row_number так:

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) as 'rownbr', Products.ProductID 
FROM Products 
ORDER BY Products.ProductID 

, а затем просто использовать ИНЕКЕ, как это:

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) as 'rownbr', Products.ProductID 
FROM Products 
WHERE rownbr BETWEEN 10000 and 20000 
ORDER BY Products.ProductID 
+0

какая проблема? люди рекомендуют ему использовать WHERE ID> = 10001. Но я не вижу, где он сказал, что у него есть столбец IDENTITY в hos-таблице. и (@count - 10000) возвращает ему все записи после первых 10k, а не «10,001 до каких-то значений» –

+0

Никто не говорит, что у меня есть столбец с идентификатором. Это обычная вещь. Если они не имеют идентификационного столбца, они будут упоминать. Потому что это другое. Просто поймите поток. – PoliDev

+0

вы также можете сделать select% some_date% в my_new_table из ... И вы получите новую таблицу с большим количеством необходимых данных, но без столбца идентификации. Таким образом, вы можете использовать ROW_NUMBER. –

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