alle Ziffern aus String ersetzen

Wolf-Tilmann

Aktiver Benutzer
Beiträge
35
Einen schönen, kalten, guten Morgen,

könnt Ihr mir hier bitte noch einmal helfen?
Ich habe eine Tabelle mit Anschriften. In diese Tabelle geben mehrere Personen Daten ein.
Eines der Datenfelder lautet: "strasse". Leider haben einige der Personen auch die Hausnummer dort eingegeben. Es gibt nämlich ein eigenes Datenfeld "hausnummer".
Ob in "hausnummer" etwas steht oder nicht ist momentan unerheblich.
Gibt es eine Möglichkeit aus den Datenfeldern "strasse" alle Ziffern auf einen Rutsch zu entfernen?
Ich hatte mir so etwas vorgestellt wie:
Code:
REPLACE(strasse, IN('0','1','2','3','4','5','6','7','8','9'), '')
Ich habe zwar gegooglet aber nichts passendes gefunden, außer für jede Ziffer eine Replaceanweisung und die dann verschachteln.

Danke schon einmal
Einen schönen Gruß
Wolf-Tilmann
 
Werbung:
Bei 10 Ziffern sind das 10 replace()-Aufrufe, das ist überschaubar. Dazu noch ltrim() und rtrim() und fertig.

Wenn du natürlich auch Buchstaben und Bindestriche in deinem Nummernteil hast wird es schwieriger, da würde ich anders vorgehen.
 
Genau betrachtet habe ich Euch mein Problem absolut falsch dargestellt :oops:

Als Hausnummern kommen vor:
Alle Ziffern [0 - 9]
Sonderzeichen ['/','-']
Buchstaben [a-d] und [A-C]

Idealerweise wäre es super, alles rechts und ab dem 1. Ziffernzeichen zu löschen.

Schönen Gruß
Wolf-Tilmann
 
Werbung:
Also ich hab das vorletzte Woche noch gemacht :)
Code:
UPDATE   tabelle
SET     neu_strasse = rtrim(left(alt_strassehausnr,patindex('%[0-9]%',alt_strassehausnr)-1))
WHERE  alt_strassehausnr LIKE '%[0-9]%'

UPDATE   tabelle
SET     neu_hausnr = ltrim(right(alt_strassehausnr,datalength(alt_strassehausnr)-datalength(neu_strasse)))
WHERE   ltrim(right(alt_strassehausnr,datalength(alt_strassehausnr)-datalength(neu_strasse))) != alt_strassehausnr
Das ist MSSQL könnte also in Access etwas abweichen. Wenn deine Spalten NVARCHAR und nicht VARCHAR sind solltest du len() statt datalength() benutzen.
 
Zurück
Oben