Тема
|
SQL zaqvka
|
|
Автор | dani (Нерегистриран) |
Публикувано | 13.11.03 09:53 |
|
Imam naprimer edna obiknovena zaqvka kato tazi:
select * from clienti
Tazi zaqvka primerno mi vra6ta 10 zapisa. Kak da napravq taka, 4e da mi pokaje samo parvite 4 zapisa, a drugite da ne gi pokazva. Izpolzvam Interbase ina4e v MySQL ima6e maj "limit", koeto re6ava6e tozi problem. Mersi.
|
|
|
select first 4 * from clienti
ама това работи на FireBird. Ти кой точно сървър ползваш?
|
|
|
Interbase 6 Open Edition - 6.0.2.0. Ne go priema.
|
|
Тема
|
Re: SQL zaqvka
[re: dani]
|
|
Автор |
x-man (дебел) |
Публикувано | 13.11.03 11:28 |
|
опитай със stored procedure
малко по дълго е но може да свърши работа
нещо такова
CREATE PROCEDURE SELECTEMPLOYEES (
MAXCOUNT INTEGER)
RETURNS (
FIRSTNAME VARCHAR(50))
AS
DECLARE VARIABLE CNT INTEGER;
begin
CNT=0;
for select FirstName from employees
into :FirstName
do
begin
if (CNT>=:MAXCOUNT) then
break;
suspend;
CNT=CNT+1;
end
end
и после избираш първите 4ри
select * from selectemployees(4)
този SQL обаче не се държи добре по отношение на order by (select * from selectemployees(4) order by firstname)
|
|
|
Само вместо break; трябва да е Exit;
|
|
|
Той не поддържа такива неща. Или използвай по-нова версия (разбирай FireBird, щото InterBase си е платен вече) или направи някакъв трик със сторедпроцедурка, както ти показа x-man
|
|
|
не че има голямо значение...
но тази процедура връща един и същ резултат и с Exit и с Break (Firebird 1.0)
|
|
Тема
|
Stranichen vapros
[re: dani]
|
|
Автор | NikB (Нерегистриран) |
Публикувано | 13.11.03 15:12 |
|
Bi li mi poiasnil prichinite, poradi koito si preminal ot MySQL na IB. V momenta izbiram kym koe da se orientiram i ste mi e interesno.
(Do kolkoto imash vreme za otgovor na takyv vypros)
|
|
|
Нямам InterBase при мене, с FB съм и не мога да го проверя, ама ако не се лъжа IB има само Exit, но не и Break... А човека каза, че е с IB 6.0.2... Дано не греша ама май е така 
|
|
|
Опитах се да намеря нещо за Break в документацията на Interbase 6.0 (2AllBooks.pdf) обаче не се споменава нищо - споменава се само Exit
така че си прав
|
|