Hast Du eine Spalte “tags”? Die wird angelegt, wenn osm2pgsql mit “–hstore” oder “-k” läuft…

Da findest du alles, was für osm2pgsql nicht ins übliche Schema passt. Und dort landen dann auch “addr:postcode”-Felder. Eine Ausgabe sähe dann z.B. so aus:

 select osm_id,tags->'addr:street' as strasse,tags->'addr:postcode' as postleitzahl from osm_point where "addr:housenumber"='1' limit 5;
  osm_id   |   strasse    | postleitzahl 
-----------+--------------+--------------
 330054520 | Hauptstraße  | 83131
 700829296 |              | 
 700783337 |              | 
 255870784 | Fabrikstraße | 83101
 702097393 |              | 
(5 rows)

Und abfragen so:

select distinct tags->'addr:street' as strasse from osm_point where (tags->'addr:postcode'='85276') limit 5;
      strasse      
-------------------
 Adlerskron
 Adolf-Rebl-Straße
 Ahornring
 Am Hagberg
 Am Hügel
(5 rows)

Zur Vereinfachung habe ich mir ein paar views gebastelt, die mir die komische Art, ein hstore anzusprechen, abnehmen. Die musste ich aber auch aus anderen Gründen anlegen, vielleicht brauchst Du die nicht.

Grüße, Max