1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Hausnummer aus der Straße...

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Faabris, 29 Oktober 2019.

  1. Faabris

    Faabris Benutzer

    Hallo SQLer
    Wie leider häufig der Fall ist, haben wir in der Tabelle Adresse auf der Spalte Straße, die Hausnummer auch mitgeliefert.

    Das Attribut ist wie Folgendes befüllt:
    1 Feldstrasse
    • 1. Feldstrasse 12
    • Feldstrasse 11
    • Feldstrasse 102 Herzwolde
    • 125 Morgen Weg 13 (125 Morgen Weg ist Straßen Name)
    • 3-k-weg 24 (3-k-weg ist Straßen Name)
    F12 Birkwitz-weg
    • Birken-weg 12B
    • L11 18 (die Straße L11 liegt in Mannheim)
    • 117ER Ehrenhof
    • 18.-Maerz-Strasse
    Und noch weitere Fälle.

    Nun meine Herausforderung ist aus der Spalte Straße die Hausnr. raus selektieren.
    Kann jemand mir bitte helfen?

    Danke und VG
    Faabi
     
  2. akretschmer

    akretschmer Datenbank-Guru

    beim Wegwerfen?


    Andreas
     
  3. Walter

    Walter Administrator Mitarbeiter

    Schon das Beispiel Mannheim (siehe Quadratestadt – Wikipedia ) zeigt, wie komplex das sein kann. Ich glaube nicht, dass das machbar ist für einen grossen Datenbestand, zumindest wenn man eine hohe bis sehr hohe Quote an Richtigkeit anstrebt?

    Aber grundsätzlich sind regular expressions Dein Freund.
     
  4. Faabris

    Faabris Benutzer

    Hi Walter,
    mit regexp habe ich schon angefangen!! kommen nicht so viel weiter:)
    aber danke für die Hilfe.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Vermutlich wirst Du keinen zuverlässigen Weg finden. Wenn Du wirklich jetzt, nachträglich, das auseinanderpflücken willst, dann wäre vielleicht noch eine Idee, sich eine Liste der Straßennamen der Städte zu besorgen, ohne die Hausnummern. Ich denke da in Richtung OpenStreetmap. Dann könntest Du schauen, was darauf matcht, und aus dem Matsch, den Du jetzt hast, die Straße rausnehmen und den Rest als Hausnummer interpretieren. Aber vermutlich wird auch das nicht zu 100% funktionieren.

    Habt ihr Azubis, und über wie viele Datensätze reden wir?
     
    Walter gefällt das.
  6. Faabris

    Faabris Benutzer


    danke für die Hilfe.
    count 474 404
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Azubis oder Datensätze? ;-)
     
    Walter gefällt das.
  8. Faabris

    Faabris Benutzer

    Datensätze :)
     
  9. ukulele

    ukulele Datenbank-Guru

    Also ich würde sagen das ist erstmal recht simpel. In Deutschland werden wohl in 99%+ Fällen keine Ziffern im Straßennamen auftauchen. Also hast du mit sowas hier:
    Code:
    SELECT (CASE WHEN strassehausnr LIKE '%[1-9]%' THEN rtrim(left(strassehausnr,patindex('%[1-9]%',strassehausnr)-1)) ELSE strassehausnr END) AS strasse,
    (CASE WHEN strassehausnr LIKE '%[1-9]%' THEN right(strassehausnr,datalength(strassehaunr)-patindex('%[1-9]%',strassehausnr)+1) ELSE NULL END) AS hausnr
    FROM tabelle
    schonmal das Grobe erschlagen. Natürlich kann man sich dann noch behelfen, z.B. in dem man bekannte Fälle wie Straße = L11 vorher handhabt. Schwieriger finde ich eher Zusätze die eventuell hinter der Hausnummer noch kommen ("Wohnung 1" oder "1. Stock") die gehören da eigentlich nicht so recht hin. Aber man kann eine Kontrolle machen z.B. bei Datensätzen in denen Hausnr mehr als einen Buchstaben enthält.
     
    Faabris und Walter gefällt das.
  10. Dravion

    Dravion Aktiver Benutzer

    Ich würde vorschlagen Ukuleles Abfrage für eine View auf das Strassennamenfeld zu verwenden und die View HausNr zu nennen. Dann kannst Du sehr schnell via Sichtkontrolle überschlagen ob Du an alle Hausnummern dran gekommen bist und falls nicht kannst Du die Abfrage deiner View nach und nach optimieren. Für die wenigen Fälle die übrig bleiben, solltest
    Du die Hausnnr Daten im Strassenfeld
    korrigieren.

    Wenn dann alles stimmt, frage die Hausnr. nur noch über deine View ab und am besten sorgst Du per Trigger dafür, dass die User künftig keine fehlformatierten Daten mehr eingeben können..
     
    Faabris gefällt das.
  11. Faabris

    Faabris Benutzer

    Moin ukulele,
    danke für die Hilfe.
    es hat mir geholfen :)
    VG
     
  12. Faabris

    Faabris Benutzer

    Hi Dravion,
    danke, das muss ich auch Probieren :)
    VG
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden