2010-08-27 5 views
2

Je veux sélectionner les colonnes sous forme de valeurs séparées par des virgules en faisant quelque chose comme:Comma SQL Server valeurs séparées entre les colonnes

select column1+','+column2+','+column3+','+coulmn4 from someTable 

, sauf si l'une des colonnes contiennent des valeurs nulles je dois ignorer cette colonne d'ajouter une virgule comment faire cela est SQL Server? [Toutes les colonnes sont de type varchar donc pas coulée nécessaire]

Répondre

4

essayer

table de test

create table #testCol (column1 varchar(10), column2 varchar(10), 
column3 varchar(10), column4 varchar(10)) 

insert #testCol values('a', null,null,'b') 
insert #testCol values(null,'a',null,'b') 
insert #testCol values(null,'a','Z','b') 

Recherche

select isnull(column1,'')+ case when column1 is null then '' else ',' end 
+ isnull(column2,'')+ case when column2 is null then '' else ',' end 
+ isnull(column3,'')+ case when column3 is null then '' else ',' end 
+ isnull(column4,'') 
from #testCol 

sortie
a, b
a, b
a, Z, b

+0

convient à mon besoin, merci beaucoup – Gopi

0

Pouvez-vous exporter vers csv, puis supprimer toutes les virgules doubles?

5
 

Select 
    Case When Len(IsNull(Column1),'') > 0 Then Column1 + ',' Else '' End, 
    Case When Len(IsNull(Column2),'') > 0 Then Column2 + ',' Else '' End, 
    Case When Len(IsNull(Column3),'') > 0 Then Column3 + ',' Else '' End, 
    Case When Len(IsNull(Column4),'') > 0 Then Column4 + ',' Else '' End, 
    Case When Len(IsNull(ColumnN),'') > 0 Then ColumnN + ',' Else '' End 
From 
    SomeTable 
 
+0

Merci beaucoup – Gopi

0
select isnull(column1 + ',', '') + isnull(column2 + ',', '') + isnull(column3 + ',', '') + isnull(coulmn4, '') from someTable 
Questions connexes