joni2000de
Goto Top

MSSQL mehrere Spalten zu einer zusammenfassen mit Leerraumunterdrückung

Hallo Admins,

ich bin mit SQL noch nicht so firm und stehe vor folgendem Problem. In meiner Tabelle sind mehrere Spalten vorhanden (Anrede, Titel, Vorname, Nachname) die ich in der Abfrage zusammenführen möchte. Mit

select Anrede+' '+Titel+' '+Vorname+' '+Nachname "Name" from Adresse  

funktioniert das zwar, doch ich möchte wenn der Titel leer ist das überflüssige Leerzeichen verhindern. Geht das?

Gruß Joni

Content-ID: 177268

Url: https://administrator.de/contentid/177268

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Indrador
Indrador 05.12.2011 um 14:31:48 Uhr
Goto Top
Hi,

ist das Feld Titel dann leer, enthält es ein Leerzeichen oder ist es NULL?

EDIT:
Vergiss die Frage, das hier deckt alles ab

select
case ISNULL(titel, '')
when ' ' then Anrede+' '+Vorname+' '+Nachname
when '' then Anrede+' '+Vorname+' '+Nachname
else Anrede+' '+Titel+' '+Vorname+' '+Nachname end as Name from Adresse

Gruß
nxclass
nxclass 05.12.2011 um 15:13:25 Uhr
Goto Top
SELECT coalesce(Anrede + ' ','') + coalesce(Vorname + ' ','') + coalesce(Nachname + ' ','') AS Name FROM Adresse  
joni2000de
joni2000de 05.12.2011 um 15:34:50 Uhr
Goto Top
Mercy!

@nxclass
Bei coalesce musste das Ganze so aussehen, damit es funktioniert

coalesce(Anrede + ' ','')

Gruß Joni