imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.03.2004, 15:13     # 1
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
MS SQL: Как выводить по сторок n из запроса вернувшего m ?

Приветствую, мне нужно вывести в грид результат запроса к MS SQL не весь сразу, а по частям (строк по 20), как это можно сделать средствами SQL? Заранее благодарен!
PLP вне форума  
Старый 23.03.2004, 15:16     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
RTFM. В SELECT есть LIMIT
RaZEr вне форума  
Старый 23.03.2004, 16:37     # 3
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Принимаю ругательное ртфм в свой адрес, но от того не легче.

под лимитом можно понимать: TOP n [PERCENT]
или: SET ROWCOUNT n

это позволит лишь ограничить результат первыми n строками, а как я возьму следующие n?

Syntax
SELECT statement ::=
< query_expression >
[ ORDER BY { order_by_expression | column_position [ ASC | DESC ] }
[ ,...n ] ]
[ COMPUTE
{ { AVG | COUNT | MAX | MIN | SUM } ( expression ) } [ ,...n ]
[ BY expression [ ,...n ] ]
]
[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY base64 ]
}
]
[ OPTION ( < query_hint > [ ,...n ]) ]

< query expression > ::=
{ < query specification > | ( < query expression > ) }
[ UNION [ ALL ] < query specification | ( < query expression > ) [...n ] ]

< query specification > ::=
SELECT [ ALL | DISTINCT ]
[ { TOP integer | TOP integer PERCENT } [ WITH TIES ] ]
< select_list >
[ INTO new_table ]
[ FROM { < table_source > } [ ,...n ] ]
[ WHERE < search_condition > ]
[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
[ WITH { CUBE | ROLLUP } ]
]
[ HAVING < search_condition > ]
PLP вне форума  
Старый 23.03.2004, 16:57     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Да, забыл я что в SQL Server'е нет конструкции LIMIT. Ну не важно

В чем собственно проблема? Используй либо TOP, либо ROWCOUNT. Разницы особой нет, за исключением того, что TOP не будет работать в SQL Server'ах раньше 7-ого.

Если использовать TOP, то например вот так:
Цитата:
SELECT top 10 * FROM mytable WHERE mykeyfield NOT IN (SELECT TOP 5 mykeyfield FROM mytable)
можно выбрать записи с 5 по 10.
RaZEr вне форума  
Старый 23.03.2004, 17:18     # 5
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Оно хорошо если каждый раз при запросе (а таких явно будет не 1 и не 2) строки вернуться в одинаковой последовательности и ничего не потеряется и не продублируется. Добавлю, что сортировать их не хочется ни по каким критериям... или никуда не деться, не обойтись без этого?
PLP вне форума  
Старый 23.03.2004, 17:37     # 6
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
Оно хорошо если каждый раз при запросе (а таких явно будет не 1 и не 2) строки вернуться в одинаковой последовательности и ничего не потеряется и не продублируется
Не вижу никаких предпосылок (за исключением названия конторы ) к тому, чтобы что-то потерялось или продублировалось. Но даже если будут такие случаи, в чем проблема-то? Остается сортировать.
RaZEr вне форума  
Старый 24.03.2004, 10:34     # 7
someone312002
Junior Member
 
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120

someone312002 Путь к славе только начался
Скажите, а ссылки на известные "базовые" сайты можно приводить ? Можно ? Спасибо
Вот линк. Надеюсь, он вам поможет в разрешении проблемы.

УДАЧИ!!!

ПыСы. 2Модераторс: если я был неправ - киньте в меня чем-нить тяжёлым и корявым :о)
__________________
"я не волшебник - я только учусь..." (c)
...а зовут меня Олег...
someone312002 вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:33.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.