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.
Ergebnis: Die Einträge der Tabelle Rechnungen werden nach dem Feld Summe sortiert (von klein nach groß).
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.
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.
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.
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()
.
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.
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.
Brauchen Sie nur die Liste der Namen und nicht die Datensätze selbst, dann empfehlen wir Ihnen die Anwendung von sort()
:
Ergebnis: Aaron, beate, conrad, Dahlia, Eddi, Fatima
Ergebnis: Aaron, beate, conrad, Dahlia, Eddi, Fatima