SELECT von Datensätzen mit unterschiedlicher Schreibweise

14/08/2009 - 07:37 von Hartmut Callies | Report spam
Hallo,
ich habe eine Adressdatenbank. In dieser will ich Personen
selektieren, die eigentlich mehrfach in der Datenbank sind.
Die Eintràge unterscheiden sich nur dadurch, dass einmal
Umlaute im Namen verwendet werden und im eventuell
anderen Fall statt z.B. ü die Buchstaben ue verwendet werden.
In Wirklichkeit ist es aber die selbe Person.

Name Vorname Geburtstag
Müller Thomas 11.11.1911
Mueller Thomas 11.11.1911

Wie kann ich solche Datensàtze mit SELECT selektieren?


Grüße
Hartmut
 

Lesen sie die antworten

#1 Jörg Burzeja
14/08/2009 - 16:57 | Warnen spam
Hartmut Callies schrieb:
Hallo,
ich habe eine Adressdatenbank. In dieser will ich Personen
selektieren, die eigentlich mehrfach in der Datenbank sind.
Die Eintràge unterscheiden sich nur dadurch, dass einmal
Umlaute im Namen verwendet werden und im eventuell
anderen Fall statt z.B. ü die Buchstaben ue verwendet werden.
In Wirklichkeit ist es aber die selbe Person.

Name Vorname Geburtstag
Müller Thomas 11.11.1911
Mueller Thomas 11.11.1911

Wie kann ich solche Datensàtze mit SELECT selektieren?




Das habe ich mal so auf die Schnelle zusammengeschrieben; geht bestimmt
noch schöner. Damit werden auch die Datensàtze angezeigt, die bei den
Umlauten eine andere Schreibweise haben, und bei denen auch noch
versehentlich ein Leerzeichen hinter den Namen oder Vornamen gerutscht ist.


CREATE TABLE #xyz (Name VARCHAR(30),Vorname VARCHAR(30),Geburtsdatum
varchar (10))

INSERT #xyz (Name, Vorname, Geburtsdatum) Values ('Müller ',
'Thomas', '11.11.1911')
INSERT #xyz (Name, Vorname, Geburtsdatum) Values ('Mueller', 'Thomas
', '11.11.1911')
INSERT #xyz (Name, Vorname, Geburtsdatum) Values ('Müller' , 'Tom ',
'11.11.1911')
INSERT #xyz (Name, Vorname, Geburtsdatum) Values ('Müller', 'Tom
', '11.11.1922')
INSERT #xyz (Name, Vorname, Geburtsdatum) Values ('Möller ',
'Karl', '11.11.1922')
INSERT #xyz (Name, Vorname, Geburtsdatum) Values ('Moeller', 'Karl
', '11.11.1922')


SELECT name,
vorname,
geburtsdatum

FROM #xyz

WHERE
rtrim (name) + rtrim (vorname) + rtrim (geburtsdatum)
!= rtrim (replace (name, 'ue', 'ü')) + rtrim (vorname) + rtrim
(geburtsdatum)

UNION

SELECT name,
vorname,
geburtsdatum

FROM #xyz

WHERE
rtrim (name) + rtrim (vorname) + rtrim (geburtsdatum)
!= rtrim (replace (name, 'oe', 'ö')) + rtrim (vorname) + rtrim
(geburtsdatum)

DROP TABLE #xyz




Viele Grüsse

Jörg

Ähnliche fragen