SQL: Unerwünschte Zeichen aus einem Text entfernen

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht



Je nach SQL-Dialekt kann dafür die translate()- oder die replace()-Funktion verwendet werden.

Vorbereitung
Erstelle mit dieser Tabellenerstellungsabfrage die Tabelle mitarbeiter_tmp:

SELECT UCase( m.ma_name ) AS ma_name,
       CLng( m.gehalt) AS gehalt
INTO   mitarbeiter_tmp
FROM   mitarbeiter AS m;

Um z. B. alle Vokale und Umlaute aus ma_name und alle Nullen (0) aus gehalt zu entfernen, kann man so vorgehen.

SELECT m.ma_name,
       REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( ma_name, 'A', '' ),
                                                                      'E', '' ),
                                                             'I', '' ),
                                                    'O', '' ),
                                           'U', '' ),
                                  'Ä', '' ),
                         'Ö', '' ),
                'Ü', '') AS ma_kurz,
       m.gehalt,
       REPLACE( CStr( gehalt ), '0', '') AS gehalt_kurz
FROM mitarbeiter_tmp AS m

Die Abfrage führt dann dieses Ergebnis herbei:

ma_name ma_kurz gehalt gehalt_kurz
KÖNIG KNG 5000 5
JOHANN JHNN 2975 2975
FUHRMANN FHRMNN 3000 3
SCHMIDT SCHMDT 800 8
BLANK BLNK 2850 285
ALLARD LLRD 1600 16
WECKER WCKR 1250 125
MERTENS MRTNS 1250 125
KÜHNE KHN 2450 245
SCHEIDT SCHDT 3000 3
DREHER DRHR 1500 15
ADAM DM 1100 11
MÜLLER MLLR 1300 13
JAKOBS JKBS 950 95


Eine analoge Lösung für PostgreSQL steht in diesem DBFiddle.



Zurück zur Übersicht