Probleme mit SQL Statement im Oracle SQL Developer
Datenbank: Oracle 10g
Hallo ich möchte gerne den TOP 1 Befehl von SQL nutzen und habe daher folgenden Befehl gebastelt:
select top 1 from Tabelle where Spalte = Wert
Wenn ich diesen Befehl allerdings ausführen will erhalte ich die Fehlermeldung 923:
"FROM Keyword not found where expected"
Auch der Befehl:
select top 1 Spalte from Tabelle where Spalte = Wert
brachte keinen Erfolg.
Ich habe mal gehört das der Befehl "TOP" nicht überall unterstützt wird.
Da ich Anfänger in diesem Bereich bin wollte ich nun fragen, ob dem so ist, bzw. wo ich die mir zur Verfügung stehende Syntax finden kann ...
Vielen Dank
Gruß
Björn
Hallo ich möchte gerne den TOP 1 Befehl von SQL nutzen und habe daher folgenden Befehl gebastelt:
select top 1 from Tabelle where Spalte = Wert
Wenn ich diesen Befehl allerdings ausführen will erhalte ich die Fehlermeldung 923:
"FROM Keyword not found where expected"
Auch der Befehl:
select top 1 Spalte from Tabelle where Spalte = Wert
brachte keinen Erfolg.
Ich habe mal gehört das der Befehl "TOP" nicht überall unterstützt wird.
Da ich Anfänger in diesem Bereich bin wollte ich nun fragen, ob dem so ist, bzw. wo ich die mir zur Verfügung stehende Syntax finden kann ...
Vielen Dank
Gruß
Björn
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77754
Url: https://administrator.de/forum/probleme-mit-sql-statement-im-oracle-sql-developer-77754.html
Ausgedruckt am: 04.04.2025 um 18:04 Uhr
4 Kommentare
Neuester Kommentar
SELECT product, descr, email
FROM products
WHERE ROWNUM <= 1 and product="Bier"
das liefert dir die 1. Zeile wo das Produkt Bier ist.
es geht auch folgendes
SELECT product,etc,etc FROM
( SELECT product,etc,etc FROM Products Where Product = 'Bier')
WHERE rownum <= 1
Das ist übrigens die von Oracle empfohlene Schreibweise
Erläuterung
selektiere product,etc,etc aus der selektion produkt,etc,etc von produkt wo produklt gleich 'Bier' ist und daraus nur die erste reihe.
[edit] No problem Biber freue mich das ich mal schneller als du war ;o) [/edit]
Wie ich schon Schrieb Top 1 ist MSSQL und Limit isr MYSQL diese Befehle kannst du NICHT verwenden
FROM products
WHERE ROWNUM <= 1 and product="Bier"
das liefert dir die 1. Zeile wo das Produkt Bier ist.
es geht auch folgendes
SELECT product,etc,etc FROM
( SELECT product,etc,etc FROM Products Where Product = 'Bier')
WHERE rownum <= 1
Das ist übrigens die von Oracle empfohlene Schreibweise
Erläuterung
selektiere product,etc,etc aus der selektion produkt,etc,etc von produkt wo produklt gleich 'Bier' ist und daraus nur die erste reihe.
[edit] No problem Biber freue mich das ich mal schneller als du war ;o) [/edit]
Wie ich schon Schrieb Top 1 ist MSSQL und Limit isr MYSQL diese Befehle kannst du NICHT verwenden
Moin gex01,
SvenGuenther hat schon ziemlich recht mit der ROWNUM-Syntax.
Natürlich macht es nur einen Sinn, wenn Du Deine bisherige WHERE-Klausel auch (als erstes) mit beibehältst.
Das wäre dann das Äquivalent zum "TOP x,y" oder "FETCH FIRST x ROWs ONLY" aus anderen "Standard"-SQL-Datenbankprodukten.
Grüße
Biber
[Edit] Sorry, SvenGuenther, hab zu langsam getippt [/Edit]
SvenGuenther hat schon ziemlich recht mit der ROWNUM-Syntax.
Natürlich macht es nur einen Sinn, wenn Du Deine bisherige WHERE-Klausel auch (als erstes) mit beibehältst.
SELECT product, descr, email
FROM products
WHERE products LIKE '%Bier%'
and ROWNUM = 1
Das wäre dann das Äquivalent zum "TOP x,y" oder "FETCH FIRST x ROWs ONLY" aus anderen "Standard"-SQL-Datenbankprodukten.
Grüße
Biber
[Edit] Sorry, SvenGuenther, hab zu langsam getippt [/Edit]