Wie wähle ich nur 1 Zeile von Oracle SQL?
Ich wollen, verwenden Sie die oracle-syntax zum auswählen nur 1 Zeile aus Tabelle DUAL
. Zum Beispiel möchte ich diese Abfrage ausführen:
SELECT user
FROM DUAL
...und es würde etwa 40 Datensätze. Aber ich brauche nur einen Datensatz. ...UND, ich will es machen passieren, ohne WHERE
- Klausel.
Muss ich etwas in das Feld table_name wie:
SELECT FirstRow(user)
FROM DUAL
InformationsquelleAutor der Frage Ben | 2012-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie ROWNUM.
ie.
http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns009.htm
InformationsquelleAutor der Antwort mindvirus
Fand ich diese "Lösung" versteckt in einem der Kommentare. Da war ich auf der Suche es für eine Weile, möchte ich hervorheben, die es ein wenig (kann noch nicht kommentieren, oder solche Sachen...), also das ist, was ich verwendet habe:
Dieser druckt mir die gewünschte [Spalte] Eintrag aus, der neueste Eintrag in der Tabelle, wobei vorausgesetzt wird, dass [Datum] wird immer eingefügt, über DATEPART.
InformationsquelleAutor der Antwort
Diese syntax ist in Oracle 12c:
^^Ich wollte nur zeigen, dass entweder die Zeile oder Zeilen, die (plural) verwendet werden kann, unabhängig von der Pluralität der die gewünschte Anzahl von Zeilen.)
InformationsquelleAutor der Antwort mancini0
Soweit ich weiß, die
dual
Tabelle in Oracle ist eine spezielle Tabelle mit nur einer Zeile. Also, das würde ausreichen:InformationsquelleAutor der Antwort ypercubeᵀᴹ
Gibt es keine
limit 1
Zustand (das ist MySQL /Postgre-SQL), Oracle -, müssen Sie angebenwhere rownum = 1
.InformationsquelleAutor der Antwort Oh Chin Boon
"FirstRow" Ist eine Einschränkung und damit seinen Platz in der
where
- Klausel nicht in dieselect
- Klausel. Und es heißt, rownumInformationsquelleAutor der Antwort gdoron
Die Antwort ist:
Sollten Sie verschachtelte Abfrage:
=> In PL/SQL "ROWNUM = 1" ist NICHT gleich "TOP 1" von TSQL.
So dass Sie nicht verwenden können, eine Abfrage wie diese: "select * from any_table_x where rownum=1 order by any_column_x;" Da oracle bekommt die erste Zeile, dann gilt die order by-Klausel.
InformationsquelleAutor der Antwort Shortly FD
Wenn jede Zeile machen würde, versuchen:
Ohne where-Klausel.
InformationsquelleAutor der Antwort Raihan
InformationsquelleAutor der Antwort Andrew
wir haben 3 Möglichkeiten, um die erste Zeile in Oracle-DB-Tabelle.
1)
select * from table_name where rownum= 1
ist der beste Weg,2)
select * from table_name where id = ( select min(id) from table_name)
3)
InformationsquelleAutor der Antwort Dnyaneshwar Pawar
Flexibler als
select max()
ist:InformationsquelleAutor der Antwort Guest