Sortieren nach Klausel in PostgreSQL
-
PostgreSQL
ORDER BY
-Klausel -
Verwendung der PostgreSQL
ORDER BY
-Klausel -
Codebeispiele, die die Verwendung der PostgreSQL-Klausel
ORDER BY
demonstrieren
Im heutigen Artikel erfahren Sie, wie Sie das Ergebnis einer Tabelle basierend auf den Attributen dieser Tabelle sortieren. Es zeigt auch, wie wir die Klausel ORDER BY
verwenden können, um Daten zu sortieren. Beginnen wir damit, diesen Befehl zu verstehen.
PostgreSQL ORDER BY
-Klausel
Um es zu verstehen, lassen Sie uns die SELECT
-Anweisung besprechen. Wenn wir eine SELECT
-Anweisung in eine Abfrage schreiben, liefert sie uns alle Daten basierend auf der Anweisung aus der angegebenen Tabelle.
Diese resultierenden Daten werden ohne eine bestimmte Reihenfolge zurückgegeben. Was tun wir, wenn wir möchten, dass die Daten in einer bestimmten Reihenfolge vorliegen? Wir verwenden den Befehl ORDER BY
mit der Anweisung SELECT
.
Der Befehl ORDER BY
ermöglicht es uns, die Daten basierend auf einem oder mehreren Attributen aus der Tabelle zu sortieren. Wir können mit diesem Satz von Attributen auch in aufsteigender oder absteigender Reihenfolge sortieren.
Nachdem wir den PostgreSQL-Befehl ORDER BY
verstanden haben, wollen wir uns seiner Verwendung zuwenden.
Verwendung der PostgreSQL ORDER BY
-Klausel
Der Befehl ORDER BY
wird zusammen mit dem Rest der Abfrage nach den Anweisungen SELECT
und FROM
geschrieben. Es gibt ein paar wesentliche Details, die wir wissen müssen, um diesen Befehl zu verwenden.
Entscheiden Sie zunächst, welche Spalte oder Spaltengruppe als unser Parameter zum Sortieren der Ergebnisse verwendet werden soll. Denken Sie daran, dass dies vom Umfang des Problems abhängt, das wir zu lösen versuchen.
Wir werden es später in diesem Artikel anhand von Beispielen erläutern. Das wichtige syntaktische Detail, das Sie sich merken sollten, ist, dass wir ein Komma (``) verwenden, wenn mehrere Attribute als Parameter verwendet werden sollen.
Die Syntax für einzelne Parameter:
ORDER BY column_name;
Die Syntax für mehrere Parameter:
ORDER BY column1_name, column2_name;
Denken Sie daran, wenn mehrere Parameter verwendet werden, prüft die ORDER BY
-Klausel zuerst den Datensatz gemäß dem ersten Parameter.
Wenn zwei Werte die genaue Reihenfolge gemäß dem ersten Parameter aufweisen, wird der zweite Parameter verwendet, um diese Ähnlichkeit zu beseitigen und die resultierenden Daten zu sortieren.
Zweitens können wir die resultierenden Daten basierend auf Attributen in aufsteigender oder absteigender Reihenfolge sortieren. Die Schlüsselwörter ASC
und DESC
definieren, ob aufsteigend oder absteigend sortiert werden soll.
Wenn wir beides nicht angegeben haben, wird standardmäßig aufsteigend sortiert.
Die Syntax zum Sortieren in aufsteigender Reihenfolge:
ORDER BY column1_name ASC;
Die Syntax zum Sortieren in absteigender Reihenfolge:
ORDER BY column1_name DESC;
Die Syntax zum Sortieren in aufsteigender und absteigender Reihenfolge zusammen:
ORDER BY column1_name ASC, column2_name DESC;
Ein weiterer Fall ist schließlich, wenn NULL
-Daten in dem Attribut/der Spalte vorhanden sind, die von der ORDER BY
-Klausel als Parameter verwendet werden. Wir können angeben, ob die NULL
-Werte vor oder nach anderen Werten stehen sollen.
Für diese Operation werden die Schlüsselwörter NULLS LAST
und NULLS FIRST
verwendet. Wenn die Option ASC
verwendet wird, ist standardmäßig NULLS LAST
ausgewählt.
Wenn dagegen die Option DESC
verwendet wird, ist NULLS FIRST
standardmäßig ausgewählt. Wir können es je nach Bedarf ändern, indem wir die Schlüsselwörter hinzufügen.
Die Syntax, um NULL
-Werte zuerst zu setzen:
ORDER BY column1_name ASC NULLS FIRST;
Die Syntax zum Setzen von NULL
-Werten am Ende:
ORDER BY column1_name DESC NULLS LAST;
Codebeispiele, die die Verwendung der PostgreSQL-Klausel ORDER BY
demonstrieren
Zur Veranschaulichung durch Beispiele erstellen wir zunächst eine Tabelle wie folgt:
create table Orders(
id int,
name varchar(30) not null,
OrderAmount int not null,
constraint pk_customer primary key (id)
);
insert into Orders
values
(1,'Ben', 250),
(2, 'James', 350),
(3, 'Carl', 550),
(4, 'Adam', 550);
select * from Orders;
Ausgang:
Nachdem die Tabelle erstellt wurde, zeigen wir alle Möglichkeiten (oben besprochen) zur Verwendung des Befehls ORDER BY
.
PostgreSQL-Befehl ORDER BY
mit einem Ausdruck
Der folgende Code zeigt die Namen der Kunden und ihre Gesamtausgaben aus der Tabelle Bestellungen
sortiert nach dem Preis der Bestellungen an:
für aufsteigende Reihenfolge von OrderAmount
SELECT name, OrderAmount
FROM Orders
ORDER BY OrderAmount ASC;
Ausgang:
für absteigende Reihenfolge von OrderAmount
SELECT name, OrderAmount
FROM Orders
ORDER BY OrderAmount DESC;
Ausgang:
PostgreSQL-Befehl ORDER BY
mit mehreren Ausdrücken
Der folgende Code zeigt die Kundennamen und deren Gesamtausgaben aus der Tabelle Bestellungen
, sortiert nach Preis und Kundenname der Bestellungen.
In aufsteigender Reihenfolge sortieren
SELECT name, OrderAmount
FROM Orders
ORDER BY OrderAmount, name;
Ausgang:
In absteigender Reihenfolge sortieren
SELECT name, OrderAmount
FROM Orders
ORDER BY OrderAmount DESC, name DESC;
Ausgang:
Sowohl aufsteigend als auch absteigend
SELECT name, OrderAmount
FROM Orders
ORDER BY OrderAmount DESC, name ASC;
Ausgang:
PostgreSQL-Befehl ORDER BY
mit NULL
-Attributwerten
Für dieses unten angegebene Beispiel verwenden wir eine neue Tabelle mit null
-Werten.
create table NULLTEST(
name varchar(30) not null,
number_ int
);
insert into NULLTEST
values
('Jack', 250),
('Maguire', 350),
('Walker', 550),
('Michael', NULL);
select * from NULLTEST;
Ausgang:
Der folgende Code zeigt name
und number_
sortiert nach den Werten in der Spalte number_
mit allen NULL
-Werten zuerst an.
SELECT name, number_
FROM NULLTEST
ORDER BY number_ ASC NULLS FIRST;
Ausgang:
Die Verwendung von NULL FIRST
mit der absteigenden Sortierungsoption ORDER BY
ist unnötig, da in diesem Fall standardmäßig ein NULL
-Wert zuerst erscheint. Der folgende Code zeigt name
und number_
sortiert nach den Werten in der Spalte number_
mit allen NULL
-Werten an.
SELECT name, number_
FROM NULLTEST
ORDER BY number_ DESC NULLS LAST;
Hier ist die Verwendung von NULLS LAST
mit der aufsteigenden Sortieroption ORDER BY
unnötig, da in diesem Fall standardmäßig ein NULL
-Wert zuletzt erscheint.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub