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-Key: 177268

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

Printed on: April 19, 2024 at 01:04 o'clock

Member: Indrador
Indrador Dec 05, 2011 at 13:31:48 (UTC)
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ß
Member: nxclass
nxclass Dec 05, 2011 at 14:13:25 (UTC)
Goto Top
SELECT coalesce(Anrede + ' ','') + coalesce(Vorname + ' ','') + coalesce(Nachname + ' ','') AS Name FROM Adresse  
Member: joni2000de
joni2000de Dec 05, 2011 at 14:34:50 (UTC)
Goto Top
Mercy!

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

coalesce(Anrede + ' ','')

Gruß Joni