Hallo
Ein SELECT soll Daten aufsteigend nach der Pos.Nr. liefern.
Ich verwende “ORDER BY STRING_TO_ARRAY(pos, ‘.’) ASC”
Wie kann ich erreichen, dass
1.1.1.10
nicht vor
1.1.1.1
sondern nach
1.1.1.9
sortiert wird.
mit 1.1…1.10 usw. klappt es, bei längeren Positions-Nummern nicht.
bestimmt weiß einer Rat.
Gottfried
so vielleicht?
edb=*# select * from gottfried ;
s
----------
1.1.1.9
1.1.1.1
1.1.1.10
1.1.1.2
(4 rows)
edb=*# select * from gottfried order by string_to_array(s,'.')::int[];
s
----------
1.1.1.1
1.1.1.2
1.1.1.9
1.1.1.10
(4 rows)
edb=*#
Cool, könnte ins Auge gehen, wenn es keine INTs sind.
Ja, das wäre dann doof. Ich gehe mal fest davon aus, daß der Fragesteller passende Check-Constraints hat, damit das immer valide ist …
hallo
das funktioniert, vielen Dank. Die Werte sind generell Positions-Nummern, immer in INTs wandelbar.
Viele Grüße, Frohe Weihnachten
Gottfried
Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.