Един въпрос за SQL
12 отговора
843 прегледа
Един въпрос за SQL
Имам един въпрос.
Ето какъв е проблема:Например имам таблица , в която са записани
имена и заплати.Искам да се изведат първите 5,например,имена с най-
високи заплати?
Ако някой има идея, ще съм му много благодарен.
Ето какъв е проблема:Например имам таблица , в която са записани
имена и заплати.Искам да се изведат първите 5,например,имена с най-
високи заплати?
Ако някой има идея, ще съм му много благодарен.
Малко уточнение по въпроса
Значи, не става въпрос за mySQL, а за Informix.
В mySQL има нещо от сорта на LIMIT което в Informix го няма.
В mySQL има нещо от сорта на LIMIT което в Informix го няма.
Re: Един въпрос за SQL
select first 5 imena from tblZaplati order by zaplata desc
bofh
bofh
Re: Един въпрос за SQL
Ами незнам това first, мисля че го няма.
Става въпрос за стандартизацията на езика SQL, по-точно SQL2
Може би в SQL3 го има, но при SQL2 не върви.
Определено решението трябва да бъде по-завъртяно по една друга
причина,която няма да споменавам сега.
Мерси все пак.
Става въпрос за стандартизацията на езика SQL, по-точно SQL2
Може би в SQL3 го има, но при SQL2 не върви.
Определено решението трябва да бъде по-завъртяно по една друга
причина,която няма да споменавам сега.
Мерси все пак.
blah
neshto bqh ostanal s vpechatlenie che pitash za informix ... :)
DB2: select * from table fetch first 5 rows only
Informix: select first 5 * from table
MSSQL&Access: select top 5 * from table
MySQL&Postgre: select * from table limit 5
Oracle: select * from (select * from table) where rownum <= 5
bofh
DB2: select * from table fetch first 5 rows only
Informix: select first 5 * from table
MSSQL&Access: select top 5 * from table
MySQL&Postgre: select * from table limit 5
Oracle: select * from (select * from table) where rownum <= 5
bofh
Re: blah
Добре, може и аз да съм те объркал нещо.
Друг въпрос :С dbaccess под Linux работил ли си,
защото за тази среда става въпрос,която може и да е първата
версия на Informix,незнам,но има нещо общо с Informix.
Друг въпрос :С dbaccess под Linux работил ли си,
защото за тази среда става въпрос,която може и да е първата
версия на Informix,незнам,но има нещо общо с Informix.
Не си
ме объркал просто в момента спя и не гледам.
DBAccess клиент-а или библиотеката (за C или за Java) ?
bofh
DBAccess клиент-а или библиотеката (за C или за Java) ?
bofh
Re: Не си
Не знам може би е клиента.
Остави,няма значение, ще се наложи сам да си изкарам оценката :))
Остави,няма значение, ще се наложи сам да си изкарам оценката :))
Re: Един въпрос за SQL
току-що имах подобен проблем - в access ще стане просто с:
SELECT TOP 5 *
FROM table
ORDER BY salary;
SELECT TOP 5 *
FROM table
ORDER BY salary;
Редактирано от navlek на
Re: blah
Loshoto e che v Oracle sluchaia se fetchva celia result set i sled tova se vadiat vyprosnite redove. Osobeno ako razshirim malko zadachata i iskame redove ot 100 do 500 i pri polozhenie che tablicata sydyrzha 1 mln. reda primerno....
Burn baby!
Burn baby!
е хайде сега :)
все едно не може да се сетиш да ползваш курсор
declare
cursor c_hits is
select /*+ FIRST_ROWS */ bla, blaa, blaaa from tblblabla order by bla desc;
begin
for i in c_hits
loop
.....
exit when c_hits%rowcount > 5;
end loop;
end;
...
или за 9i ...
alter session set optimizer_mode = first_rows_10;
select * from tblbla order by bla;
ама то на всеки е ясно,че универсални решения няма.
rgrdz:
bofh
declare
cursor c_hits is
select /*+ FIRST_ROWS */ bla, blaa, blaaa from tblblabla order by bla desc;
begin
for i in c_hits
loop
.....
exit when c_hits%rowcount > 5;
end loop;
end;
...
или за 9i ...
alter session set optimizer_mode = first_rows_10;
select * from tblbla order by bla;
ама то на всеки е ясно,че универсални решения няма.
rgrdz:
bofh
Re: е хайде сега :)
da be prav si...
ama to s cursor e veche drugo. problem e kato triabva da rabotish prez jdbc primerno i ne iskash celia result set da se fetch-va
vizh tva za 9i ne go znaeh ama sa kato poglednah dokumentaciata zabelizvam che ne vyrshi mnogo dobra rabota shtoto ima samo first_rows_1, first_rows_10, first_rows_100, first_rows_1000
be izobshto hamalogia e tochno tva na Oracle...
Burn baby!
ama to s cursor e veche drugo. problem e kato triabva da rabotish prez jdbc primerno i ne iskash celia result set da se fetch-va
vizh tva za 9i ne go znaeh ama sa kato poglednah dokumentaciata zabelizvam che ne vyrshi mnogo dobra rabota shtoto ima samo first_rows_1, first_rows_10, first_rows_100, first_rows_1000
be izobshto hamalogia e tochno tva na Oracle...
Burn baby!