[FOSSGIS-Talk] Punkte in einer Attributtabelle ordnen

Thomas Baschetti info at thomas-baschetti.de
Di Dez 18 22:19:43 CET 2012


Am 18.12.2012 19:49, schrieb klaussss at web.de:
> 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?
kommt aufs Programm bzw. die Datenquelle des Layers an. Wenn die Daten aus einer Datenbank (postgresql/postgis) kommen, könntest Du den Datentyp casten und danach sortieren,
also z.B.
select cast(hausnummer as int) as hsnr from layer order by hsn

Geht aber nur, wenn alle Werte direkt umgewandelt werden können. Also nicht bei

> * geht das auch wenn Zahlen z.B. 127, 128, 128a, 129 heissen?
da müsstest Du komplexer casten, z.B.
select hausnummer, cast(regexp_replace(hausnummer,'[a-z]','') as int) as hsnr, regexp_replace(hausnummer,'[1-9]*','') as zusatz from ax_lagebezeichnungmithausnummer order
by hsnr,zusatz

Falls das aber wirklich Hausnummer sind wird das nicht reichen, die können nämlich auch komplexer sein, z.B. "6-8" oder 100a-f und alles dazwischen. Und manchmal gibt es
dann noch Stockwerk und Zimmernummer dazu, falls es Adressdaten sind ;-)


Mit freundlichen Grüßen

Thomas Baschetti

-- 

Thomas Baschetti - Systemanalyse Geographische Informationssysteme
Hakenstraße 8D
49074 Osnabrück

Tel: 0541 25 91 90 | mobil 01577 189 25 91
E-Mail: info at thomas-baschetti.de
www.thomas-baschetti.de
Ust-IdNr.: DE264355072