Leerzeichen ersetzen (Telefonnummern)

Hallo zusammen,

habe folgendes Problem:

Hab in unserer Adresstabelle die Telefon- und Faxnummern, wie folgt angelegt:

+49 8031 33280

Sollte nun die Leerzeichen mittels SQL-Befehl mit Klammern ersetzen. Das Ergebnis sollte so aussehen:

+49 (8031) 33280

Bin für eure Hilfe sehr dankbar!

Die Umgebung ist MS SQL Server 2005.

Gruß
Thomas

Nicht so laut … wenn das der AK ließt!!! Der wird pöse - denn hier wird nur Postgres-Opfern gehelft :slight_smile:

+49 8031 33280

Sollte nun die Leerzeichen mittels SQL-Befehl mit Klammern ersetzen. Das Ergebnis sollte so aussehen:

+49 > (> 8031> ) > 33280

Bin für eure Hilfe sehr dankbar!

also du solltest dir MSSQL string-funktionen anschauen …
da gibts sicher eine funktion welche dir die position eines substring sucht … und andere die entweder zeichen an bestimmten stellen ersetzen oder einfuegen koennen, aber auf jedenfall ne substr(ing) - und concatenation funktion mit der du dann teil-strings wieder zu nem ganzen zusammen fuegen kannst.

du muesstest also mit soetwas wie concat(substring(telnr from 1 for position(’ ’ in telnr)), … usw. dir sowas zusammenschachteln …

da entsteht dann eben ein ausdruck, der dir - wenn du es richtig machst - das gewuenschte ergebnis liefert.

den ausdruck kannst du dann in nem update statement verwenden …

update kontakte
set telnr = (concat(substring(position(' ' in telnr) .... usw. mit dem wahnsinn)

vielleicht geht es in MSSQL auch eleganter … du koenntest dir mit den DTS tools (Data Transformation Services) die betroffenen Daten in ein CSV File exportieren - sie dann in einem Texteditor deiner Wahl (UltraEdit) elegant bearbeiten und mit den gleichen DTS wieder zurueckspulen.

so ganz trivial ists auf jedenfall nicht …

Besten Dank für die schnelle Antwort. Bin absoluter SQL-Neuling, scheint mir sehr komplex das Ganze,…

Abgesehen vom falschen Forum (g):

Warum wollt ihr die Vorwahlen klammern? Der internationale Standard sagt sogar genau das Gegenteil aus, nämlich keine Klammern, keine Sonderzeichen, keine Bindestriche.

Alternativ zum Vorschlag von symbiont könntest du vielleich einen Regexp ansetzen und mittels Suchen/Ersetzen im Regexp die Vorwahl filtern und alles zusammen im Ergebnis wieder einsetzen.

Echt im falschen Forum? Sorry.

Wir haben eine neue Telefonanlage deren Software auf exportierte Outlook-Adressen zugreifen kann und von dort aus gleich telefoniert werden kann. Der “Outlook-Standard” setzt bei den Vorwahlen Klammern und dies Software benötigt diese, um korrekt zu funktionieren.

Danke für eure Antworten, werd mal schauen, ob ich’s hinkrieg.

Gruß
Tom

Weil Deine Frage nicht Postgres tangiert :slight_smile:
Manche reagieren da a weng allergisch g