在一行中显示来自多个具有空值的列/行的ID的记录

时间:2012-03-22 14:53:41

标签: mysql

在检索和处理数据文件时使用MySQL,我试图在一行中查看来自各行的各个列的记录,以便忽略其他列的空值并在一行中显示所有值

列col1,col2,col3,col4,具有唯一行ID的空值

对于此检索数据表

          col1    col2    col3    col4
row1      1       null    null    null
row2      null    2       null    null
row3      null    null    3       null
row4      null    null    null    level1

finalRow  1       2       3       level1
Select ID, IFNULL(col1, col2, col3, col4 From table t

带来错误消息。 MAX函数对我来说不起作用,因为MIN值也需要得到拾取。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,这可能是一个解决方案:

Select ID, IFNULL(col1, IFNULL(col2, IFNULL(col3, col4))) from ...

答案 1 :(得分:0)

鉴于您的示例MAX将起作用。在您的示例中,每列只有一个非空值,因此最大值也是最小值。所以,这会得到你期望的结果......我认为是finalRow

select max(col1), max(col2), max(col3), max(col4) from table

更好地解释您正在寻找的内容并添加更多示例会很有帮助。