Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > скюл запрос


Автор: Step 13.5.2003, 08:41
у меня есть запрос, который по определенным параметрам выбирает все записи которые удовлетворяют условиям, но мне необходимо всего десять записей удовлетворяющих условиям, как это можно сделать

Автор: Vyacheslav 13.5.2003, 10:17
Если это поддерживает диалект SQL, который ты используешь, то
SELECT TOP 10 * FROM emp

Автор: Step 13.5.2003, 10:26
спасибо

Автор: Master 13.5.2003, 14:23
Можно ещё SELECT * FROM emp WHERE условие LIMIT 10

Автор: Step 13.5.2003, 15:37
этот вариант более приемлем

Автор: Medved 27.5.2003, 11:48
Цитата
SELECT TOP 10 * FROM emp


ИМХО этот вариант более предпочтительней!

Автор: Vit 23.6.2003, 16:04
Цитата(Master @ 13.5.2003, 05:23)
Можно ещё SELECT * FROM emp WHERE условие LIMIT 10

А какие диалекты SQL поддерживают такое?

Автор: Vaulter 27.6.2003, 05:05
Vit LIMIT 1,10 знаю точно mySQL держит

Автор: vickr 27.6.2003, 13:39
Раз уж речь зашла о всех возможных вариантах для разных СУБД, то добавлю еще один для SQL Server:
Код

SET ROWCOUNT n | @n
SELECT * FROM some_table
SET ROWCOUNT 0 -- отключить ограничение (обязательно, а то оно останется)

То же самое применимо и к INSERT, UPDATE и DELETE.
Преимущество такого подхода относительно TOP n - можно указывать не само значение, а переменную, его содержащую. Мне буквально на днях понадобилась процедура для обновления только @n записей в таблице, где @n - значение, задаваемое пользователем и я не нашел никакого другого способа реализации, кроме описанного выше.

Автор: Step 27.6.2003, 13:42
всем спасибо

Автор: Vit 1.7.2003, 04:16
А есть ли способ, например, ограничить выведение например с 20й по 40ю записи? Я знаю что могу это сделать 2мя вложенными селектами с сортировкой, но может есть какой-нибудь более нормальный вариант? - интересует MS SQL Server и MS Access.

2 Vaulter к сожалению в MS SQL Server и MS Access такое не работает, а точнее - мне не удалось заставитиь такое сделать sad.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)