sql >> Databasteknik >  >> RDS >> Sqlserver

Hur sammanfogar man kolumner korrekt med T-SQL?

När du sammanfogar något med en null, returnerar den null. Så jag försöker sammanfoga ett kommatecken med det givna kolumnvärdet och om det uttrycket returnerar null använder jag Coalesce för att returnera en tom sträng. I slutet, om jag får ett värde, börjar hela resultatet med ett kommatecken. Så jag tar bort kommatecken med funktionen Stuff.

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

Om du bara vill ha adressen, så skulle du självklart bara inkludera dessa kolumner:

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


  1. Supernyckel, kandidatnyckel och primärnyckel

  2. Lyssna efter ändringar i Oracle Database i .net

  3. Oracle SQL Query för att sammanfatta statistik, med hjälp av GROUP BY

  4. Inloggning misslyckades för användaren 'NT AUTHORITY\NETWORK SERVICE'