~ SQL-bestand met een lijst van alle Belgische postcodes en steden

Logo de Post

Uit de lijst van postcodes van alle Belgische steden heb ik een SQL-bestand samengesteld. De gegevens bevatten de postcode zelf, de naam van de stad, de naam van de stad in hoofdletters en een veld “structure” waaruit de gemeente-deelgemeente relatie gehaald kan worden als er op gesorteerd wordt. Dit zijn bijvoorbeeld de deelgemeentes van Chimay.

6460   CHIMAY
6460        Bailièvre
6460        Robechies
6460        Saint-Remy (Ht.)
6460        Salles
6460        Villers-la-Tour
6461        Virelles
6462        Vaulx-lez-Chimay
6463        Lompret
6464        Baileux
6464        Bourlers
6464        Forges
6464        l'Escaillère
6464        Rièzes


Het sorteren kan in PostgreSQL met deze SQL instructie: order by translate(structure, ' ', 'z'). Het SQL-script zelf is een lijst van INSERT INTO SQL-Statements.

insert into cities(zipcode,name,up,structure)  VALUES ('1790','Affligem','AFFLIGEM','1790   AFFLIGEM');
insert into cities(zipcode,name,up,structure)  VALUES ('9051','Afsnee','AFSNEE','9051        Afsnee');
insert into cities(zipcode,name,up,structure)  VALUES ('5544','Agimont','AGIMONT','5544        Agimont');
...

Dit is het SQL-bestand met een lijst van alle Belgische postcodes en steden. Hopelijk is hier iemand ooit iets mee.

Reacties

Waarom doe je dat niet gewoon met een veldje 'parent' en een join op de tabel zelf? Stringbewerkingen zijn traag.
Het zou inderdaad verstandiger zijn om zelf één keer die stringbewerking uit te voeren en daarmee een parent veld aan te maken en de tabel joinen met zichzelf.

Ik doe dit niet omdat ik de gegevens van de post 1:1 heb gekopieerd en de relatie gemeente-deelgemeente niet nodig heb. Die stringbewerking staat daar om aan te geven hoe je het structure veld kan gebruiken om de gemeente-deelgemeente relatie uit de gegevens van de post te halen, indien nodig.
Dan maak je gewoon een functionele index aan, dan wordt de bewerking niet uitgevoerd in je query, maar is al voorbewerkt in de index. En dus wordt bij het sorteren een index gebruikt.

CREATE INDEX idx_naam ON tabelnaam (translate(structure, ' ', 'z'));
Om te bewijzen dat jij geen script bent moet het allerlaatste karakter van je reactie '6' zijn.

wink ([;)]) alt= happy ([8)]) alt= unhappy ([8(]) alt= lol ([8D]) alt= p ([8P]) alt= cool ([B)]) alt= beer ([B]) alt=
 
© 2010 0110.be