Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
1-972
VDen
2002-06-19 21:34
2002.07.01
Создание кнопки на панели в RunTime


14-1178
Fissher
2002-05-30 18:08
2002.07.01
Всем привет! Книжки не найдется? :-))


8-1115
Alex_Cherepanov
2002-01-17 16:23
2002.07.01
GSM->PCM


14-1170
sergey32
2002-05-30 14:28
2002.07.01
Вместо того, чтобы болтать


6-1129
sergio777
2002-04-09 20:24
2002.07.01
А как этот кусок на C переписать под Delphi?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский