Ist es möglich, die Daten in einer Oracle-Tabelle zu sortieren? Wie aufsteigend/absteigend über eine bestimmte Spalte, alphabetisch. Oracle 10g Express.Sortieren von Daten in einer Oracle-Tabelle
Antwort
könnten Sie
versuchenSelect *
from some_table
order by some_column asc
Dies die Ergebnisse von some_column
sortiert werden und sie in aufsteigender Reihenfolge vergeben. Verwenden Sie desc
anstelle von asc
, wenn Sie absteigend sortieren möchten. Oder meintest du, die Bestellung im physischen Lager selbst zu haben?
Ich glaube, es ist möglich, die Sortierung einer indizierten Spalte im Speicher anzugeben. Es ist wahrscheinlich am nächsten zu dem, was Sie wollen. Ich in der Regel nicht diesen Index Sortierfunktion verwenden, aber für weitere Informationen siehe: http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5010.htm#i2062718
Was meinst du wirklich?
Fragen Sie nur nach der Order by-Klausel?
Nein ich meine die tatsächlichen Daten in der Tabelle. –
Was ist der Zweck? ein Index scheint die nähere Antwort auf Ihre seltsame Frage zu sein. – ykatchou
Oracle 10g Express unterstützt ANSI SQL wie die meisten RDBM ist, so dass Sie in der üblichen Weise sortieren:
SELECT * FROM Persons ORDER BY LastName
Ein gutes Tutorial auf SQL kann hier gefunden werden: w3schools SQL
Oracle Express hat einige Einschränkungen im Vergleich zur Enterprise Edition, aber nicht in den grundlegenden SQL-Dialekt unterstützt.
Vielleicht könnten Sie eine indexorganisierte Tabelle verwenden - IOT, um sicherzustellen, dass die Daten geordnet nach Index gespeichert werden.
Werfen Sie einen Blick auf die physikalischen Eigenschaften Klausel der CREATE TABLE-Anweisung: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#i2128663
Was das Problem ist, dass Sie zwar versuchen zu lösen? Ein IOT kann oder darf nicht das sein, was Sie verwenden sollten.
Wie im relationalen Modell definiert, sind die Zeilen und Spalten in einer Tabelle ungeordnet. Das ist zumindest die Theorie.
In der Praxis sollten Sie immer die ORDER BY
-Klausel verwenden, wenn die Daten in einer bestimmten Reihenfolge aus einer Abfrage kommen sollen. Die Reihenfolge der Ausgabe ist keine Garantie, es sei denn, Sie stellen dies zur Verfügung.
Es wäre möglich, eine ORDER BY
beim Einfügen in eine Tabelle zu verwenden, aber das garantiert nicht die Reihenfolge, in der Daten ausgegeben werden. Eine Abfrage könnte jedes Mal in der gleichen Reihenfolge erscheinen ... aber das bedeutet nicht, dass sie das nächste Mal in der gleichen Reihenfolge erscheinen wird.
Es gab Probleme, als Oracle 10g herauskam, wo Sammelanfragen (mit GROUP BY
) nicht sortiert wurden, weil Benutzer sich darauf verlassen mussten, dass die Daten als Nebeneffekt der Gruppierung sortiert wurden. Mit der Einführung der HASH GROUP BY
wurden neben der SORT GROUP BY
Menschen ertappt. Dies war eine nützliche Erinnerung, dass ORDER BY
immer verwendet werden sollte.
Bezug nahm, was, wenn 'ORDER BY' keine Option ist? In meinem Fall dauert es zu lange – Toolkit
Physischer Speicher selbst, ist das möglich? –
@Jacob: Aktualisiert, eine Verknüpfung zu den CREATE INDEX-Anweisungsspezifikationen hinzugefügt, die zeigen, wie der Index im Speicher geordnet werden kann. – FrustratedWithFormsDesigner
Ich könnte falsch liegen, aber ich denke, dass das OP auf die Speicherreihenfolge der Tabellendaten selbst eher als ein Index – bhangm