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

Откуда:
Сообщений: 246
Не могу правильно сформулировать ворос, нужно выбрать первые 70 строк, потом следующие 70
Первые 70 понимаю как :
SELECT TOP (70) * FROM table
18 мар 09, 11:09    [6942060]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
1. Первые 70 в каком порядке?
2. Версия сервера какая?
18 мар 09, 11:11    [6942080]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
jonybest
выбрать первые 70 строк, потом следующие 70
Постраничная выборка
18 мар 09, 11:12    [6942095]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
jonybest
Member

Откуда:
Сообщений: 246
Спасибо!
Решение лежало на поверхности
SELECT TOP 70 * FROM table 
WHERE id NOT IN
 (SELECT TOP 70 id FROM table ORDER BY id) 
ORDER BY id
18 мар 09, 11:26    [6942191]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
jonybest
Спасибо!
Решение лежало на поверхности
SELECT TOP 70 * FROM table 
WHERE id NOT IN
 (SELECT TOP 70 id FROM table ORDER BY id) 
ORDER BY id
И это возвращает хотя бы одну запись??
18 мар 09, 11:32    [6942253]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
jonybest
Спасибо!
Решение лежало на поверхности
SELECT TOP 70 * FROM table 
WHERE id NOT IN
 (SELECT TOP 70 id FROM table ORDER BY id) 
ORDER BY id
И это возвращает хотя бы одну запись??
Прошу прощения. Глупость написал.
18 мар 09, 11:33    [6942270]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
jonybest
Member

Откуда:
Сообщений: 246
А как указать с 70 + все остальное?
18 мар 09, 13:17    [6943082]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
Glory
Member

Откуда:
Сообщений: 104760
jonybest
А как указать с 70 + все остальное?

Не указвать ТОР ???
18 мар 09, 13:26    [6943160]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
jonybest
Member

Откуда:
Сообщений: 246
Glory
jonybest
А как указать с 70 + все остальное?

Не указвать ТОР ???


Нужно именно грубо до 70 и после...
18 мар 09, 13:40    [6943280]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
Glory
Member

Откуда:
Сообщений: 104760
jonybest
Glory
jonybest
А как указать с 70 + все остальное?

Не указвать ТОР ???


Нужно именно грубо до 70 и после...

И что это меняет ?
18 мар 09, 13:42    [6943301]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
jonybest
Glory
jonybest
А как указать с 70 + все остальное?

Не указвать ТОР ???


Нужно именно грубо до 70 и после...
SELECT CASE WHEN ROW_NUMBER() OVER(ORDER BY id)<=70 THEN 'До 70' ELSE 'После 70' END, * FROM [table]
??
18 мар 09, 13:45    [6943311]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
st1111
Guest
iap,

select  *
from table
where id in 
(select top 140 id
from table 
order by id
)
and 
id not in 
(select top 70 id
from table
order by id
)
18 мар 09, 15:19    [6944039]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
st1111
iap,

select  *
from table
where id in 
(select top 140 id
from table 
order by id
)
and 
id not in 
(select top 70 id
from table
order by id
)
Что это? "До 70 и после"?

И почему не
select top 70 *
from table
where id not in 
(select top 70 id
from table
order by id
)
, как автор уже написал?
18 мар 09, 16:05    [6944351]     Ответить | Цитировать Сообщить модератору
 Re: интервал выбора select  [new]
alozzz
Guest
концепция следующая
(писал в блокноте, не тестировал)

DECLARE @page int SET @page = 1
DECLARE @recordsPerPage int SET @recordsPerPage = 70

SELECT TOP (@recordsPerPage) * FROM table WHERE id NOT IN
(SELECT TOP ((@page - 1) * @recordsPerPage) * FROM table ORDER BY id)
ORDER BY id
5 ноя 09, 18:07    [7888062]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить