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

Вниз

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

 
Narayan ©   (2004-05-03 04:30) [0]

Как выбрать n первых записей в IB.
И можно ли это дело оформить как представление ?


 
Кщд   (2004-05-03 10:37) [1]

в FB - select first n
в IB - посредством манипуляций с where


 
narayan ©   (2004-05-03 10:39) [2]

2 Кщд   (03.05.04 10:37) [1]

можно по подробнее про манипуляции


 
Кщд   (2004-05-03 10:44) [3]

1. если можно получить ровно 10 записей, сформулировав соответствующее условия в where, то  почему бы этого не сделать? :)
2. ещё вариант - хранимая процедура


 
narayan ©   (2004-05-03 11:44) [4]

2 Кщд   (03.05.04 10:44) [3]

кусочек кода всегда лучше длинных объяснений


 
ss300 ©   (2004-05-03 12:33) [5]

2 narayan

1) добавь в таблице дополнительное поле id
2) напиши триггер, типа автоинкремента для поля id
3) select * from table where id<20;


 
narayan ©   (2004-05-03 12:57) [6]

2 ss300 ©   (03.05.04 12:33) [5]

это чушь


 
Кщд   (2004-05-03 15:33) [7]

narayan ©  (03.05.04 12:57) [6]
не грубите и не грубимы будете

narayan ©  (03.05.04 11:44) [4]
не знаете for select - в доку
знаете - в чем вопрос?


 
narayan ©   (2004-05-03 15:39) [8]

2 Кщд

1. если можно получить ровно 10 записей, сформулировав соответствующее условия в where, то  почему бы этого не сделать? :)

А всё таки, как надо "сформулировать соответствующее условия в where" что бы "получить ровно 10 записей" ??


 
Anatoly Podgoretsky ©   (2004-05-03 15:47) [9]

narayan ©   (03.05.04 15:39) [8]
Очень просто, для этого надо иметь пронумерованое без дырок поле и использовать в выборке предикат between


 
служивый   (2004-05-03 15:56) [10]

>>Как выбрать n первых записей в IB.
rows n


 
Johnmen ©   (2004-05-03 16:35) [11]

>служивый  (03.05.04 15:56) [10]

Служи дальше. Для тебя дембель ещё далеко...
:)


 
kaif ©   (2004-05-03 20:34) [12]

Универсальное для любого IB решение:

Предположим имеется таблица mytable

create table mytable(id integer, name varchar(50),
 constraint pk_mytable primary key(id));

создаеся хранимая процедура:

create procedure mytable_first_n_select(n integer)
returns(id integer, name varchar(50))
as
begin
 for select id, name from mytable
 order by id
 into :id, :name
 do
 begin
   if n = 0 then
     exit;
   else
     suspend;
   n = n - 1;
 end
end

Далее делается запрос

select from mytable_first_n_select(10)

Получаешь 10 "первых" записей. Если первыми 10 записями называть первые 10 в наборе, упорядоченном по id.

А зачем это нужно? Если опишете задачу, может быть найдем другие решения. Например, перейти на Firebird и использовать его опцию в select, позволяющую решать эту задачу. Или может проще выбрать все записи, а фетчить только первые N. Это тоже неплохое решение в некоторых случаях. А может быть вообще этот путь неверный. Все от задачи зависит...


 
kaif ©   (2004-05-03 20:36) [13]

Пардон, в таблице: id integer not null.
И в запросе забыл поля указать:
select * from mytable_first_n_select(10)


 
narayan ©   (2004-05-03 23:01) [14]

2 kaif

Другое решение не требуется.
Нужно это для http://delphimaster.net/view/3-1083330901/
А так, вообще-то всё это пока под yaffil.

На счёт процедуры - это первое что мне пришло в голову, но я расчитывал что есть стандортные средства.
Поскольку это место в не критичное, можно в принципе, и в программе ограничить кол-во записей.

Ладно. Нет так нет. Всё равно, спасибо.


 
kaif ©   (2004-05-04 14:52) [15]

select first 10 * from mytable
в Yaffil-е работает. Я только что проверил.


 
служивый   (2004-05-08 18:09) [16]

>Johnmen ©   (03.05.04 16:35) [11]
>Служи дальше. Для тебя дембель ещё далеко...:)
Прошу извинить уважаемый,но на IB 6.5
select * from table rows 10
дает тот результат о котором спрашивал автор
а дембель это хорошо :))



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
7-1083246222
p_sA[11]
2004-04-29 17:43
2004.05.30
Дефолтовая раскладка клавиатуры


1-1084695889
Максим
2004-05-16 12:24
2004.05.30
Курсор


1-1084622659
Soldier
2004-05-15 16:04
2004.05.30
Tmemo


14-1084074388
Апач
2004-05-09 07:46
2004.05.30
Вечный вопрос: Мужчина и Женщина


14-1084368392
a3a3ello
2004-05-12 17:26
2004.05.30
delphi и XP