在检索和处理数据文件时使用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值也需要得到拾取。
答案 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
更好地解释您正在寻找的内容并添加更多示例会很有帮助。