![]() |
MS SQL: Как выводить по сторок n из запроса вернувшего m ?
Приветствую, мне нужно вывести в грид результат запроса к MS SQL не весь сразу, а по частям (строк по 20), как это можно сделать средствами SQL? Заранее благодарен!
|
RTFM. В SELECT есть LIMIT
|
Принимаю ругательное ртфм в свой адрес, но от того не легче.
под лимитом можно понимать: 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 > ] |
Да, забыл я что в SQL Server'е нет конструкции LIMIT. Ну не важно :)
В чем собственно проблема? Используй либо TOP, либо ROWCOUNT. Разницы особой нет, за исключением того, что TOP не будет работать в SQL Server'ах раньше 7-ого. Если использовать TOP, то например вот так: Цитата:
|
Оно хорошо если каждый раз при запросе (а таких явно будет не 1 и не 2) строки вернуться в одинаковой последовательности и ничего не потеряется и не продублируется. Добавлю, что сортировать их не хочется ни по каким критериям... или никуда не деться, не обойтись без этого?
|
Цитата:
|
Скажите, а ссылки на известные "базовые" сайты можно приводить ? Можно ? Спасибо
Вот линк. Надеюсь, он вам поможет в разрешении проблемы. УДАЧИ!!! ПыСы. 2Модераторс: если я был неправ - киньте в меня чем-нить тяжёлым и корявым :о) |
| Часовой пояс GMT +4, время: 12:52. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.