Текущий архив: 2008.10.19;
Скачать: CL | DM;
Внизкак найти 10 "последних записей" в sql ? Найти похожие ветки
← →
Вопрос (2008-04-15 20:48) [0]Ну, к примеру, по дате добавления - последних.
Но как сделать чтобы их было именно 10 ?
Это вообще возможно в SQL ? Как конкретно должен выглядеть такой запрос ?
← →
Johnmen © (2008-04-15 20:52) [1]В некоторых серверах это возможно.
Как именно - зависит от сервера и его версии.
← →
Вопрос (2008-04-15 20:54) [2]Johnmen... и как должен выглядеть запрос select ?
Firebird или IB.
← →
Вопрос (2008-04-15 20:56) [3]по дате добавления - я имею ввиду, при наличии поля data. с датой. :>
← →
Johnmen © (2008-04-15 21:00) [4]http://www.ibase.ru/devinfo/dataaccesspaths.htm 2.4. Счетчики
← →
Anatoly Podgoretsky © (2008-04-15 21:02) [5]> Вопрос (15.04.2008 20:56:03) [3]
ORDER BY ... DESC
← →
Вопрос (2008-04-15 21:44) [6]Anatoly Podgoretsky, речь идет не о порядке выдаче, а об ограничении выдачи...
← →
El Hombre (2008-04-15 21:57) [7]В T-SQL можна использовать select top N [field list] from tableNme. Как с этим обстоят дела в Firebird или IB - не знаю
← →
sniknik © (2008-04-15 22:32) [8]> Anatoly Podgoretsky, речь идет не о порядке выдаче, а об ограничении выдачи...
другая сторона медали...
чтобы ограничить выдачу нужен порядок, т.к. без него нет не имеет смысла понятия - первая запись/последняя/последние 10 и т.д.
> В T-SQL можна использовать select top N [field list] from tableNme.
без order-а это фактически N случайных в разные моменты записей.
← →
Вопрос (2008-04-15 22:48) [9]порядок порядком, а ограничить-то как... если не привлекать генераторы порядкового ключа для ограничения, положим...
← →
Вопрос (2008-04-15 23:00) [10]SELECT FIRST 100 * FROM Table ORDER BY Data DESC ?
похоже так
← →
palva © (2008-04-15 23:01) [11]
> порядок порядком, а ограничить-то как
Так если порядок перевернут, то последние 10 станут первыми. Тогда надо написать SELECT FIRST(10) ...
← →
PEAKTOP © (2008-04-15 23:38) [12]
> SELECT FIRST 100 * FROM Table ORDER BY Data DESC ?
>
> похоже так
>
это выбрать первые 100 записей. у Firebird v2.1 есть ROWS в операторе SELECT.
SELECT ... FROM .... WHERE ... ROWS 100 TO 10
← →
Вопрос (2008-04-15 23:53) [13]PEAKTOP © в случае с датой и descendig это и будут последние 100.
а что конкретно делает Rows ?
← →
Anatoly Podgoretsky © (2008-04-16 00:21) [14]
> SELECT FIRST 100 * FROM Table ORDER BY Data DESC ?
>
> похоже так
Ну и чего ты тогда сопротивлялся против ORDER BY Data DESC - это же как раз ключевой момент, классика, если не можешь получить 10 последних, то получи 10 первых в обратном порядке.
Метод инверсии.
← →
Вопрос (2008-04-16 00:45) [15]Anatoly Podgoretsky
да не сопротивлялся я... как можно, Вага... (c)
Спасиб, вообщем, всем.
← →
PEAKTOP © (2008-04-16 14:08) [16]> Вопрос (15.04.08 23:53) [13]
>
> а что конкретно делает Rows ?
Нумерует записи в SELECT и позволяет ограничивать выборку указаными записями в порядки их следования. Например, ROWS 100 TO 110 - означает вернуть из результата выборки записи с 100 по 110.
Конструкция появилась после роста популярности Firebird, особенно в области ERP-систем, когда начали прикручивать к ним WEB-интерфейс на PHP, где все PHP-кодеры привыкли, что в конструкции SELECT для машины баз данных MySQL есть ROWS. После долгих и продолжительных воплей конструкция была прикручена в SQL-сервер Firebird.
На фига нужна ROWS? - Посмотри внизу списка тем данного форума есть ссылки на страницы.
Страницы: 1 вся ветка
Текущий архив: 2008.10.19;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.008 c