-
Telefonnummern Zeichen ersetzen
Hallo *ALL,
ich baue einen View mit Telefonnummern.
Also z.B.
Ländervorwahl +49
Ortsvorwahl 02055
Anschluss 444
Durchwahl 123
Diese werden zu einem Feld zusammengefügt.
trim(a.kdtelvw) concat trim( a.KDTEOVW ) concat trim( a.KDPTTE) concat trim( a.KDTEDWL ) as Telefonnummer ,
In den einzelnen Feldern können aber auch - oder / oder sonstige zeichen stehen
Gibt es im SQL eine Möglichkeit alles zu trimmen und ersetzten was nicht numerisch ist ?
Gruß
Michael
-
Hallo.
Nichts mir bekanntes.
Ganz naiv würde ich dir aber eine UDF vorschlagen zu basteln welches die Zeichen mittels REPLACE bereits entfernt.
-
Hallo,
hier eine SQL UDF um alles nicht-numerische aus Strings zu entfernen:
Code:
CREATE OR REPLACE FUNCTION STRPNONNUM(VAL VARCHAR(50))
RETURNS VARCHAR(50)
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
RETURNS NULL ON NULL INPUT
ALLOW PARALLEL
NO EXTERNAL ACTION
BEGIN
RETURN REPLACE(TRANSLATE(VAL,' ',x'000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFFAFBFCFDFEFF'), ' ');
END;
-
REGEXP_REPLACE kann das!
Code:
Select RegexP_Replace(TelefonNr, '[\D]', ''), TelefonNr, x.*
from YourTable x
-
Wenn die View viel genutzt wird, ist es vielleicht sinnvoll zu testen welche Variante die bessere Performance hat. Wobei die REGEX Variante natürlich die elegantere Variante ist.
-
Diese Variante kann man auch in einen Computed Index aufnehmen, dann ist das Suchen per View mit diesem Ausdruck über einen Index gewährleistet.
-
Hi zusammen,
sorry für die späte Rückmeldung.
Unser Azubi hat die Variante mit der Regex als SQL Funktion erstellt
RETURN REGEXP_REPLACE(givenString, '[^[:digit:]]');
-
Ist das selbe:
\D => [^[:digit:]]
Es sei denn, die IBM unterstützt \D nicht.
Regex ist case sensitive:
\d = Ziffern
\D <> Ziffern
Similar Threads
-
By chrisssiie in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 15-09-19, 12:51
-
By programmer400 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 04-11-15, 07:46
-
By ExAzubi in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 12-08-08, 06:11
-
By TARASIK in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 22-10-04, 07:32
-
By Matthias.Hayn in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 15-07-02, 07:03
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks