对于单个表,如何使用互斥列数据折叠多个行

时间:2014-09-15 19:35:58

标签: sql

我希望将表的行与相互排斥的列值组合在一起,保留所有列: 例如:

Name Data1 Data2 Data3 .... DataN
NAM1  6     NULL  NULL ...   NULL
NAM1  NULL  NULL  7    ...   NULL
NAM2  NULL   8    NULL ...   NULL
NAM3  5     NULL  NULL ...   NULL
NAM3  NULL  NULL   9   ...   NULL
NAM3  NULL   4    NULL ...   NULL
NAM4  etc

表中每行数据的特征只有Data1 ... DataN中的1个值不为NULL

我希望结果是

NAME DATA1 DATA2 DATA3 ... DATAN
NAM1  6     NULL  7    ...  NULL
NAM2  NULL  8     NULL ...  NULL
NAM3  5     4     9    ...  NULL
NAM4

1 个答案:

答案 0 :(得分:3)

select Name, MAX(Data1), MAX(Data2), MAX(Data3) from test
group by Name