Das ist natürlich nicht das, was ich will. Ich hätte gerne
1
2
10
11
usw…
Was muss ich an der Abfrage ändern?
Ich weiß, dass ich das umgehen kann, wenn ich z.B. 01 in der id verwende anstatt 1.
Aber ich weiß ja heute nicht ob 01 reicht. Vielleicht brauche ich morgen 001 oder 0001.
Da ich das nicht weiß, brauche ich ne Lösung, die wirklich von 1 - unendlich auflistet.
Offensichtlich speicherst Du Zahlen in einem varchar Feld. Ändere das Feld in einen integer (oder numeric) Datentyp und schon klappt die Sortierung.
Merke:
Ein Datum immer mit einem date Datentyp speichern
Ein Datum + Uhrzeit immer mit einem timestamp Datentyp speichern
Zahlen immer mit einem integer (oder numeric) Datentyp speichern.
Danke für deine schnelle Antwort - werde ich mir merken.
Was mache ich bei Werten , die eine Kombination aus Buchstaben und Zahlen sind?
Bsp:
DE1
DE10
DE2
DE20
usw.
Kann ich die Sortierung da auch irgendwie “verbessern”?
An dieser Stelle kann ich ja (zumindest bei MySQL) kein int mehr nutzen, oder?
Ich merke schon, dass PG im Vergleich zu MySQL viel mehr kann und sich der Umstieg gelohnt hat
Abhängig davon wie sortiert werden soll, kannst Du mit einer regex die zeichen entfernen und das Ergebnis in eine Zahl verwandeln die dann sortierfähig ist.
Ansonst bleibt noch die Möglichkeit eine eigene Funktion zu schreiben die aus dem Eingabewert einen “Sortierwert” errechnet und diese dann zum Sortieren zu verwenden.
Hab jetzt einfach ein ID Feld (typ serial, AutoIncrement) hinzugefügt und danach sortieren lassen. Da die Nummern immer aufsteigend vergeben werden gehts auch so
Kann ich auch 2-fach sortieren?
z.B.
Sortiere Nach Name und wenn Name mehrfach vorhanden die dann nach nummer?