Hirdetés
- Yettel topik
- Telekom mobilszolgáltatások
- OnePlus 15 - van plusz energia
- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 15 Ultra - kamera, telefon
- Xiaomi 15T Pro - a téma nincs lezárva
- EarFun Air Pro 4 - a cél a csúcs
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Google Pixel topik
Új hozzászólás Aktív témák
-
bpx
őstag
Egy megoldás már le lett írva, így csak a hibára reagálnék. Azért nem ad eredményt, mert pl. annak, hogy WHERE ROWNUM = 2, nincs értelme, soha nem fog eredményt adni. A ROWNUM eredményhalmazra vonatkozik, és nem táblára. A ROWNUM értéke folyamatosan növekszik az eredményhalmaz sorainak számával együtt. A ROWNUM = 1 azért működik, mert az első sorra teljesül, hogy az az első sor. A ROWNUM = 2 azért nem ad eredményt, mert az első sorra nem teljesül, hogy az a második sor, így nem kerül be az eredményhalmazba, és a ROWNUM értéke sem fog növekedni, így nem lesz eredmény sem.
Na, lassú voltam.
-
Ablakos
addikt
Igen a rownum ilyen sajátosan működik. Egytől indul, egyesével növekszik. A where-ben kiértékeli a pszeudo értéket, ami először 1. Mivel a feltétel teljesült (=1) lefut, jön a következő ciklus. Következő for ciklusban megint kiértékeli és megint csak 1-el indul a rownum, de a feltétel nem teljesül (i = 2). Ekkor null value akaródzik a változóba menni, és ennek a jutalma no data found kivétel.
-
rum-cajsz
őstag
Azt most nm pont értem, hogy miért nem ad vissza sort a te példád, viszont ha visszaadna, akkor sem biztos, hogy azt kapnád, amit szeretnél, mivel a lekérdezés eredménye order by nélkül nem feltétlenül ugyanazt a sorrendet adja vissza egymás után kétszer.
Az első 3 sort így tudod szűrni:
begin
for i in (
select * INTO emp_adatok from emp where ROWNUM<4
) loop
dbms_output.put_line(i.ename);
end loop;
end;
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


