Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.01;
Скачать: CL | DM;

Вниз

Хитрый запрос   Найти похожие ветки 

 
Rail   (2002-06-06 09:24) [0]

Возможно ли только методами SQL выполнить запрос, который отбирает определенное количество записей?


 
Johnmen ©   (2002-06-06 09:27) [1]

Типа ...???????


 
Lord Warlock ©   (2002-06-06 09:37) [2]

естественно :) он для этого и предназначен


 
Lord Warlock ©   (2002-06-06 09:43) [3]


> естественно :) он для этого и предназначен


поправка. нельзя


 
bpv   (2002-06-06 09:45) [4]

при использовании bde можно смотри справку


 
fool ©   (2002-06-06 10:35) [5]

В MSSQL можно:
select top 5 * from таблица
возвращает первые 5,
сюда можно добавлять дополнительные условия с пом. where


 
dimis   (2002-06-06 10:47) [6]

запрос не хитрый
просто на до выяснить какую субд пользуешь
fool привел пример из MSSQL
так делается в Oracle
select * from table1 where rownum<=5
p.s. я не уверен но по-моему rownum и в IB есть


 
Lusha ©   (2002-06-06 10:48) [7]

>fool © (06.06.02 10:35)
Не всякий MS SQL знает директиву TOP... :)

>bpv (06.06.02 09:45)
А вот это для меня новость... :)


 
Nikolay M. ©   (2002-06-06 14:26) [8]

В MySQL есть прекрасная добавка LIMIT:
SELECT * FROM TableName LIMIT 200, 300
выберет 300 записей, начиная с 200-й (естественно, в рамках написанного запроса)


 
Anatoly Podgoretsky ©   (2002-06-06 14:31) [9]

Зависит от базы


 
passm   (2002-06-06 14:31) [10]

Можно.
Разобъем задачу на две части:
1. Вывести строки таблицы с нумерацией
2. Вывести строки этой таблицы из некоторого диапазона.

Решение1:
SELECT COUNT(T2.ID) AS POS_NUM, T1.ID
FROM T1
INNER JOIN T1 AS T2 ON (T1.ID >= T2.ID)
GROUP BY T1.ID

Решение2:
SELECT Q1.POS_NUM, Q2.ID, Q2.NAME
FROM (SELECT COUNT(T2.ID) AS POS_NUM, T1.ID
FROM T1
INNER JOIN T1 AS T2 ON (T1.ID >= T2.ID)
GROUP BY T1.ID) AS Q1
INNER JOIN T1 AS Q2 ON (Q1.ID = Q2.ID)
WHERE Q1.POS_NUM BETWEEN :POS_MIN AND :POS_MAX
Где параметры POS_MIN и POS_MAX определяют диапазон строк.


 
Johnmen ©   (2002-06-06 14:46) [11]

>passm (06.06.02 14:31)

Извини великодушно, но по-моему по сути это бред....


 
pavelB   (2002-06-06 14:50) [12]

Lusha ©
есть функция в БДЕ которая ограничевает количество записей возвращаемых SQL


 
Johnmen ©   (2002-06-06 14:58) [13]

>pavelB (06.06.02 14:50)
>есть функция в БДЕ которая ограничевает количество записей
>возвращаемых SQL

Можно ее здесь привести ?



 
Lusha ©   (2002-06-06 15:01) [14]

>pavelB (06.06.02 14:50)
Да-а-а? Век живи, век учись... А ее имя не подскажете?


 
dimis   (2002-06-06 15:03) [15]

>Johnmen © (06.06.02 14:46)

>но по-моему по сути это бред....
согласен
меня интересует "где автор вопроса"? пусть появится и ответик в конце концов какую субд он использует и использует ли bde
а спор между "мастерами" это "из пустого в порожнее"


 
Johnmen ©   (2002-06-06 15:05) [16]

>dimis (06.06.02 15:03) : Совершенно согласен !!!! :)))))


 
passm   (2002-06-06 15:24) [17]

Это не бред. Это SQL. Что конкретно не понятно?
Если СУБД автора вопроса понимает синтаксис SELEST... FROM (SELECT... то работать будет.
А что касается некой функции DBE (name?), то я не видел никакой на нее (BDE) ссылки в вопросе.


 
Johnmen ©   (2002-06-06 15:32) [18]

>passm (06.06.02 15:24)
>Это не бред....

Да работать то будет. Вот только что получится в результате оной работы....(имел в виду именно результат) :-))))))




 
passm   (2002-06-06 15:41) [19]

Результат зависит от содержимого таблицы T1, запрашиваемых полей и диапазона значений (во втором запросе она под алиасом Q2). Еще раз повторю: автор писал ТОЛЬКО МЕТОДАМИ SQL. У тебя есть другое решение? Напиши его. Буду рад его увидеть. ;)


 
Johnmen ©   (2002-06-06 15:50) [20]

>passm (06.06.02 15:41)

Ну как ты не поймешь, что по сути надо ограничить количество зафетченых записей (20, 1000 или 100000000000).

>У тебя есть другое решение?

Оно будет после указания типа СУБД. А на чистом SQL92 такое не пройдет.


 
Rail   (2002-06-06 16:01) [21]

А вот и не подеретесь!:)
А я не подстрекатель!:)


 
passm   (2002-06-06 16:04) [22]

И ты пойми, что какой вопрос - такой ответ. Еще раз ТОЛЬКО МЕТОДАМИ SQL.


 
Johnmen ©   (2002-06-06 16:15) [23]

>passm (06.06.02 16:04)
>И ты пойми, что какой вопрос - такой ответ.

Истинно так !

>Еще раз ТОЛЬКО МЕТОДАМИ SQL.

Каккого такого SQL ? Какого его клона ?

>Rail : Ты просто не знаешь чего хочешь....

>All : Предлагаю закрыть вопрос за бессмысленностью...



 
Rail   (2002-06-07 09:19) [24]

Спасибо всем за участие. Попробую все методы. Еще раз всем спасибо. Я использую IB 6.0, но попробую и на MS SQL.

P.S. Какой-то черт под моим именем влез и пару раз ответил.




Страницы: 1 вся ветка

Текущий архив: 2002.07.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
3-926
Valdemar
2002-06-08 02:10
2002.07.01
MSSQL и ODBC


1-991
Толик
2002-06-20 12:29
2002.07.01
Пошаговый проход исходников


14-1144
ццццццццц
2002-05-29 07:11
2002.07.01
Как подключить в Delphi шаблон в Excel???


14-1210
SleD
2002-06-01 19:01
2002.07.01
Заработок в Интернете?


6-1124
chernoruk
2002-04-20 13:22
2002.07.01
Разница между именем компа и IP адресом?