[FOSSGIS-Talk] Punkte in einer Attributtabelle ordnen
Oliver Bienert
obienert at waldwerk.de
Mi Dez 19 11:53:38 CET 2012
On 12/18/2012 07:49 PM, klaussss at web.de wrote:
> Hallo,
> in einer Attributtabelle eines Layers stehen ca 100 Punkte. Die Tabelle
> hat 2 Spalten. In der einen Spalte stehen arabische Zahlen. Aber der Typ
> des Attributs ist trotzdem als "Text" vordefiniert worden. In der
> anderen Spalte stehen 'richtige' Texte. Nun sollen alle Zeilen so
> geordnet werden, dass die Zahlen aufsteigen.
> * (wie) geht das?
> * geht das auch wenn Zahlen z.B. 127, 128, 128a, 129 heissen?
In postgresql gibt es die Funktion substring, die mit regulären
Ausdrücken arbeiten kann:
The |substring| function with two parameters, |substring(string from
pattern)|, provides extraction of a substring that matches a POSIX
regular expression pattern. It returns null if there is no match,
otherwise the portion of the text that matched the pattern.
Du könntest also in einer select-Anweisung zweimal auf die betreffende
Spalte zugreifen, und die Hausnummer aufsplitten in Zahl und Buchstabe.
Mit einem regulären Ausdruck kannst du auch eventuelle Leerzeichen
zwischen Zahl und Buchstabe berücksichtigen:
substring(deinspaltenname from "^[0-9]+") für die Zahl und
substring(deinspaltenname from "[a-zA-Z]+$") für den Buchstaben
dann cast zu integer und order by.
Gruss Oliver
> Danke und Gruß
> ...............................................
> FOSSGIS 2013, Die Konferenz für Open Source GIS mit OpenData
> und OpenStreetMap erstmals in der Schweiz!
> 12.-14. Juni, HSR, Rapperswil
> http://www.fossgis.de/konferenz/2013/
>
> _______________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>