2016-03-23 4 views
0

Ich habe einige Probleme mit dieser Abfrage in SQL Server 2012. Immer wenn die postalcode leer ist, liefert die gesamte ELSE Anweisung eine Null.Leeres zusammengesetztes Feld basierend auf 3 Spalten, wenn 1 Spalte leer ist

Ich versuchte die Concat Funktion, aber es ist nicht als eine Funktion in dieser SQL Server-Version erkannt. Bitte Beratung

CASE 
    WHEN adres.CD_land = 'NL' THEN (street) 
    ELSE upper(postalcode + ' '+street) 
END as Street, 

Antwort

1

Verwendung COALESCE:

CASE 
    WHEN adres.CD_land = 'NL' THEN street 
    ELSE upper(COALESCE(postalcode + ' ', '') + street) 
END as Street 
+0

exzellent es funktioniert! Danke Giorgos – mgo

+0

@mgo Froh, ich konnte helfen. Bitte markieren Sie diese oder eine andere Antwort als akzeptiert, wenn sie Ihnen bei der Lösung Ihres Problems geholfen hat. –

+0

Danke, es hat funktioniert! Markierte die Antwort – mgo

1

, wenn Sie 2012 verwenden, es concat hat, kann man es falsch way..here Syntax versuchen, ist ..

CASE 
    WHEN adres.CD_land = 'NL' THEN (street) 
    ELSE upper(concat(postalcode ,' ',street)) 
END as Street,