Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как выбрать записи с.. по..  [new]
D_A_S1
Member

Откуда: Волгоград
Сообщений: 641
Добрый день. У меня есть такой запрос:
SELECT id, name FROM testTable ORDER BY id

Мне необходимо получать не все записи (которых допустим 1000), а только с.. по.. (например с 10 по 20, а потом с 21 по 30 и т.д.).
Как такое можно сделать?
11 сен 12, 10:49    [13144223]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37067
https://www.sql.ru/faq/faq_topic.aspx?fid=105
11 сен 12, 10:50    [13144225]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/faq/faq_topic.aspx?fid=105
11 сен 12, 10:51    [13144235]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
Кетцаль
Member

Откуда:
Сообщений: 9
WHERE (id BETWEEN 0 AND 19) OR (id BETWEEN 21 AND 30)
11 сен 12, 11:09    [13144344]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
вообще-то
Guest
Кетцаль
WHERE (id BETWEEN 0 AND 19) OR (id BETWEEN 21 AND 30)

вообще-то он просил записи с 10-ой по 20-ую, а не id с 10 по 20.
может у него вообще
id int identity(1000, 20)
11 сен 12, 11:15    [13144373]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Гавриленко Сергей Алексеевич
https://www.sql.ru/faq/faq_topic.aspx?fid=105
Кстати, Glory, надо бы там последний раздел добавить про ORDER BY OFFSET для SQL 2012?
11 сен 12, 11:16    [13144389]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
Кетцаль
Member

Откуда:
Сообщений: 9
вообще-то
Кетцаль
WHERE (id BETWEEN 0 AND 19) OR (id BETWEEN 21 AND 30)

вообще-то он просил записи с 10-ой по 20-ую, а не id с 10 по 20.
может у него вообще
id int identity(1000, 20)


Ок. Понятно. Тогда может через временную таблицу:

CREATE TABLE #T( RowN int IDENTITY, id int, name varchar(50))
GO
INSERT INTO #T(id, name)
SELECT id, name FROM dbo.testTable
GO
SELECT id, name FROM #T
WHERE (RowN BETWEEN 10 AND 20) OR (RowN BETWEEN 21 AND 30)
11 сен 12, 11:54    [13144768]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать записи с.. по..  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31435
Кетцаль
Ок. Понятно. Тогда может через временную таблицу:
Эээ, на каждый запрос выбирать все данные из огромной таблицы во временную таблицу, только что бы пронумеровать? При том что 99.9% запросов будут просто первые top 10? Понизить производительность раз эдак в 1000 или больше?

Лучьше хотя бы ФАК прочесть в форуме для начала.
11 сен 12, 12:07    [13144890]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить