Как объединить строки и запятые в SQL Server? - PullRequest
7 голосов
/ 18 марта 2011

Я относительно новичок в MSSQL, поэтому извините, если вопрос звучит тривиально.Я хочу объединить несколько полей с разделителем ,.Однако, когда поле пустое, дополнительные , также будут включены в строку результата.Так есть ли простой способ решить эту проблему?Например,

SELECT VRI.Street_Number_and_Modifier + ',' + 
       VRI.Street_Direction + ',' + 
       VRI.Street_Name + ',' + 
       VRI.Street_Direction + ',' + 
       VRI.Street_Suffix + ',' + 
       VRI.Street_Post_Direction + ',' + 
       VRI.Unit
FROM View_Report_Information_Tables VRI

Ответы [ 13 ]

0 голосов
/ 18 марта 2011

Я бы полностью согласился с кратким ответом Джеймица.

В противном случае я бы посмотрел на неприятное решение использования REPLACE ([concat], ',,', ',') везде, где вы объединяете два столбца, а затем выяснил, как обрезать запятые с самого началаи конец строки, где первый и последний столбцы могут быть пустыми.Очень, очень грязный.

0 голосов
/ 18 марта 2011
SELECT isnull(VRI.Street_Number_and_Modifier + ',','')+
   isnull(VRI.Street_Direction + ',','')+
   isnull(VRI.Street_Name + ',','')+
   isnull(VRI.Street_Direction + ',','')+
   isnull(VRI.Street_Suffix + ',','')+
   isnull(VRI.Street_Post_Direction + ',','')+
   isnull(VRI.Unit,'')
FROM View_Report_Information_Tables VRI
0 голосов
/ 18 марта 2011

Вы можете использовать ISNULL(field + ',', '')

...