Главная страница
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
14-1176
VID
2002-05-30 18:40
2002.07.01
Давайте по-быстрому обсудим эту тему


1-956
GT-9121A
2002-06-19 12:05
2002.07.01
Delphi 6 как сделать так, что бы при каждом открытии Delphi


14-1135
Внук
2002-05-28 10:33
2002.07.01
Функция wvsprintf


4-1241
Alexander
2002-05-02 14:57
2002.07.01
А как, по ID или Handle изменить шрифт у StaticText?


1-1006
Dennn_is
2002-06-18 08:49
2002.07.01
КАК?