Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie verkettet man Spalten richtig mit T-SQL?

Wenn Sie etwas mit einer Null verketten, wird null zurückgegeben. Ich versuche also, ein Komma mit dem angegebenen Spaltenwert zu verketten, und wenn dieser Ausdruck null zurückgibt, verwende ich Coalesce, um eine leere Zeichenfolge zurückzugeben. Wenn ich am Ende einen Wert bekomme, beginnt das gesamte Ergebnis mit einem Komma. Also entferne ich dieses Komma mit der Stuff-Funktion.

Select Stuff(
    Coalesce(',' + FirstName,'')
    + Coalesce(',' + LastName,'')
    + Coalesce(',' + StreetAddress,'')
    + Coalesce(',' + City,'')
    + Coalesce(',' + Country,'')
    + Coalesce(',' + PostalCode ,'')
    , 1, 1, '')
From Client

Wenn Sie nur die Adresse wollen, würden Sie natürlich nur diese Spalten einbeziehen:

Select FirstName, LastName
    , Stuff(
        Coalesce(',' + StreetAddress,'')
        + Coalesce(',' + City,'')
        + Coalesce(',' + Country,'')
        + Coalesce(',' + PostalCode ,'')
    , 1, 1, '')
From Client