SQL - Telefonnummer optimieren
Hallo zusammen,
ich habe ein kleines Problem und hoffe ihr könnt mir weiterhelfen, da ich in SQL nicht so bewandert bin.
Problem:
Ich habe eine SQL Datenbank mit einigen Telefonnummern, diese wird auch ständig mit neuen Telefonnummern gefüttert, allerdings befinden sich unter den Telefonnummern immer wieder fehlerhafte Nummern.
- keine vorangestellte 0
- Buchstaben in Telefonnummer
- Bindestriche in Telefonnummer
Wäre es möglich, diese Fälle per Update Befehl irgendwie zu aktualisieren.
Fall 1.:
Wenn keine vorangestellte 0, dann setze eine 0 vor die Nummer.
Fall 2:
Wenn Buchstaben in Telefonnummer, dann leere das Feld komplett
Fall 3:
Wenn Bindestrich in Telefonnummer, dann lösche diesen.
So ein Befehl wäre echt klasse.
Beste Grüße
xister
ich habe ein kleines Problem und hoffe ihr könnt mir weiterhelfen, da ich in SQL nicht so bewandert bin.
Problem:
Ich habe eine SQL Datenbank mit einigen Telefonnummern, diese wird auch ständig mit neuen Telefonnummern gefüttert, allerdings befinden sich unter den Telefonnummern immer wieder fehlerhafte Nummern.
- keine vorangestellte 0
- Buchstaben in Telefonnummer
- Bindestriche in Telefonnummer
Wäre es möglich, diese Fälle per Update Befehl irgendwie zu aktualisieren.
Fall 1.:
Wenn keine vorangestellte 0, dann setze eine 0 vor die Nummer.
Fall 2:
Wenn Buchstaben in Telefonnummer, dann leere das Feld komplett
Fall 3:
Wenn Bindestrich in Telefonnummer, dann lösche diesen.
So ein Befehl wäre echt klasse.
Beste Grüße
xister
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 152921
Url: https://administrator.de/forum/sql-telefonnummer-optimieren-152921.html
Ausgedruckt am: 22.04.2025 um 08:04 Uhr
6 Kommentare
Neuester Kommentar
Moin xister,
Grüße
Biber
- hast du denn eine konkrete Datenbankversion oder möchstest du es eher abstrakt auf der Ebene "eine SQL-Datenbank" beantwortet haben?
- hast du denn keine Applikation zwischen den Tabellenfeldern und den DAUs, die sich um derlei lästigen Unsinn bei der Erfassung/Anzeige kümmern könnte?
Grüße
Biber
naja - hast du mal z.B. bei SQL nach "Replace" geguckt? Das wär ja schonmal ne maßnahme...
und ggf. geht auch sowas
update xyz set telefon = concat(0,telefon) where telefon NOT LIKE "0%";
Damit wäre dann nur noch das mit den Buchstaben nen Problem... Da wäre zu überlegen zu gucken wieviele Einträge das überhaupt betrifft - ob sich da nen Programm für lohnt oder nicht...
und ggf. geht auch sowas
update xyz set telefon = concat(0,telefon) where telefon NOT LIKE "0%";
Damit wäre dann nur noch das mit den Buchstaben nen Problem... Da wäre zu überlegen zu gucken wieviele Einträge das überhaupt betrifft - ob sich da nen Programm für lohnt oder nicht...
Fall 1.:
Wenn keine vorangestellte 0, dann setze eine 0 vor die Nummer.
update [YourTable]
set telefon1 = '0' + telefon1
where telefon1 not like '0%'
Fall 2:
Wenn Buchstaben in Telefonnummer, dann leere das Feld komplett
update [YourTable]
set telefon1 = ''
where telefon1 like '%[a-z][A-Z]%'
Fall 3:
Wenn Bindestrich in Telefonnummer, dann lösche diesen.
update [YourTable]
set telefon1 = replace(telefon1,'-','')
where telefon1 like '%-%'
Wenn keine vorangestellte 0, dann setze eine 0 vor die Nummer.
update [YourTable]
set telefon1 = '0' + telefon1
where telefon1 not like '0%'
Fall 2:
Wenn Buchstaben in Telefonnummer, dann leere das Feld komplett
update [YourTable]
set telefon1 = ''
where telefon1 like '%[a-z][A-Z]%'
Fall 3:
Wenn Bindestrich in Telefonnummer, dann lösche diesen.
update [YourTable]
set telefon1 = replace(telefon1,'-','')
where telefon1 like '%-%'