Дату в строку sql
Автор Дмитрий Бриккер задал вопрос в разделе Другие языки и технологии
Подскажите, как в SQL запросить первые N строк таблицы и последние N строк в таблице. Заранее спасибо! и получил лучший ответ
Ответ от Илья Павлов[гуру]
Никак. В БД не бывает первых и последних строк в таблице. Бывают просто строки. Сохранение порядка, в котором они возвращаются, не гарантируется от запроса к запросу. Можно воспользоваться ORDER BY и сортировать выборку по нужным полям. Можно воспользоваться оператором TOP, LIMIT или ROWNUM (в зависимости от того, какая СУБД) , чтобы выбрать N строк.
Для вашего случая:
SELECT TOP 20 FROM table1 ORDER BY id; - для первых 20 строк
SELECT TOP 20 FROM table1 ORDER BY id DESC; - для последних 20 строк в рамках данной сортировки. (DESC - флаг обратного порядка сортировки).
LIMIT x,y;
x - от, y - кол-во,
например:
SELECT * FROM users WHERE ID>0 ORDER BY ASC LIMIT 0,30;
Выше написано правильно, но слишком категорично, по моему глубокому IMHO. Если в таблице есть поле с типом данных IDENTITY (MS SQL Server), то можно вернуть и первые, и последние N рядов.