我有一个MYSQL表,大约有350列。有很多“空”值,我需要将几行合并在一起,并用非空值替换“空”值。我的桌子是这样的:
id|col1|col2|col3|cola|col_b|...|col350
1 |12 |4 |3 |-77 |-77 |...|-77
2 |12 |-77 |-77 |2 |-77 |...|-77
3 |12 |-77 |-77 |-77 |6 |...|-77
4 |12 |-77 |-77 |-77 |-77 |...|6
5 |13 |3 |-77 |-77 |-77 |...|-77
6 |13 |-77 |5 |-77 |-77 |...|-77
...
-77
是空值的替换。Incol1
是属于一起的数据集的id。我需要一个select查询来将非“空”值合并到每个col1-id的一个结果行中。对于col1 id 12,它应该如下所示:
1 | 12 | 4 | 3 | 2 | 6 | ... | 6
有人知道怎么做吗?
最佳答案
SELECT col1,
MAX(CASE WHEN col2 <> -77 THEN col2 END) AS col2,
MAX(CASE WHEN col3 <> -77 THEN col3 END) AS col3,
MAX(CASE WHEN cola <> -77 THEN cola END) AS cola,
MAX(CASE WHEN col_b <> -77 THEN col_b END) AS col_b,
... and so on
MAX(CASE WHEN col350 <> -77 THEN col350 END) AS col350
FROM YourTable
GROUP BY col1
关于mysql - 将表中的非空值合并到一个结果行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30112441/