Oracle: Anzeigen von Zeilen-Nummer mit 'order by' - Klausel
Frage ich mich, wie konnte ich drucken Sie eine Zeilennummer für die sql-Anweisung where verwenden, um.
Derzeit habe ich versucht ROWNUM
aber so wie ich das verstehe funktioniert das nur für unsortierte Ergebnismenge.
SELECT rownum, a.lg_id, a.full_name, a.sort_order
FROM activity_type_lang a
where a.lg_id = 'en'
order by a.full_name;
TIA
InformationsquelleAutor Igor Konoplyanko | 2009-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben der Schachtelung der Abfragen, die Sie verwenden können, eine analytische Funktion
Mithilfe von Video-Analyse-Funktionen, erleichtert es auch, wenn Sie wollen, um zu ändern, wie Beziehungen behandelt werden. Sie können ersetzen
ROW_NUMBER
mit RANG oderDENSE_RANK
.InformationsquelleAutor Justin Cave
Oh. Scheint, ich habe schon gefunden die Lösung.
InformationsquelleAutor Igor Konoplyanko
rownum angewendet wird Sie vor der Bestellung, so dass Sie haben, um schreiben Sie Ihre Abfrage wie diese:
select rownum, xxx.* aus (
WÄHLEN Sie eine.lg_id, ein.full_name, ein.sort_order
VON activity_type_lang ein
wo eine.lg_id = 'en'
um von einem.full_name
) xxx;
InformationsquelleAutor
Klar zu sein (jemand könnte es falsch). Es hat arbeiten (aber nicht in der Weise, die Sie erwarten). Das problem dabei ist, dass es "misst" die ROWNUM vor der Sortierung, und Sie bekommen Ihre Datensätze aber nicht in aufeinander folgenden ROWNUM records. Warum? Da
Dies ist wirklich gutes Beispiel, wie wählen Sie /Bestellung-Mechanismus arbeitet.
InformationsquelleAutor Svetlozar Angelov