Datensätze sortieren

order by

Mit order by sortieren Sie einen Array aus Datensätzen nach einem bestimmten Feld. Das ist hilfreich, wenn Sie einen Array, bevor Sie ihn weiterverarbeiten, zuerst sortieren möchten.

Wenn Sie order by in einem Layout-Element Ansicht verwenden, dann wird dieses erst nach einem (ausgewählten) Spaltenkopf sortiert und anschließend über den nach order by angegebenen Wert.

Beispiel

(select Rechnungen) order by Summe

Ergebnis: Die Einträge der Tabelle Rechnungen werden nach dem Feld Summe sortiert (von klein nach groß).

Beispiel

Sie können die Auswahl der Datensätze mit where oder eckigen Klammern [...] einschränken.

Der Wert nach order by muss dabei nicht zwingend nur ein Feldname sein, Sie können ihn zum Beispiel auch durch Funktionen manipulieren.

(select Rechnungen where Datum = today()) order by number(substr('Rechnungs-Nr.', 3))

Ergebnis: Die Einträge mit heutigem Datum der Tabelle Rechnungen werden nach der Zahl im Text-Feld Rechnungs-Nr. sortiert.

Die 3 verweist auf die Position der Zahl innerhalb der Rechnungs-Nr., die bei uns zum Beispiel an der 4. Stelle beginnt: RE-12574 (0=R, 1=E, 2=-, 3=1 (die erste Zahl)).

Am besten funktioniert order by wenn man Datensätze anhand einer Zahl sortiert.

Tipp: Sortieren von Strings

Vorsicht beim Sortieren von Strings. Strings werden nicht alphabetisch, sondern nach dem Index der Zeichen sortiert. So werden zuerst alle Großbuchstaben alphabetisch sortiert, anschließend die Kleinbuchstaben.

Erläuterung

ABcD wird also zu ABDc sortiert.

Um das gewünschte Ergebnis zu erhalten, vereinheitlichen Sie die Werte einfach durch upper() oder lower(). Dann werden die Anfangsbuchstaben zuerst alle einheitlich auf Großbuchstaben bzw. Kleinbuchstaben gesetzt.

Ergebnis: ABcD

Alternative: Verwenden Sie statt order by die Ninox-Funktion sort().

Beispiel

Sie haben eine Tabelle Beispiel für order by mit einem Feld Vornamen. Darin enthalten sind folgende Datensätze: Aaron, Eddi, conrad, beate, Dahlia, and Fatima. Fügen Sie folgendes Skript in ein Formel-Feld ein.

concat(((select 'Beispiel für order by') order by Vorname).Vorname)

Ergebnis: Aaron, Dahlia, Eddi, Fatima, beate, conrad

Das ist nicht die gewünschte alphabetische Sortierung ...

Wir ergänzen upper(), was alle Einträge zum Sortieren in Großbuchstaben setzt.

concat(((select 'Beispiel für order by') order by upper(Vorname)).Vorname)

Ergebnis: Aaron, beate, conrad, Dahlia, Eddi, Fatima 🎉

Brauchen Sie nur die Liste der Namen und nicht die Datensätze selbst, dann empfehlen wir Ihnen die Anwendung von sort():

concat(sort((select 'Beispiel für order by').Vorname))

Ergebnis: Aaron, beate, conrad, Dahlia, Eddi, Fatima

Last updated