【问题标题】:Show records in one row for an ID from multiple columns/rows with null values在一行中显示具有空值的多列/行中的 ID 记录
【发布时间】:2012-04-07 03:49:37
【问题描述】:

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

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

对于这个检索到的数据表

col1 col2 col3 col4 第 1 行 1 null null null 行 2 空 2 空 空 行 3 空 空 3 空 row4 null null null level1 finalRow 1 2 3 level1
Select ID, IFNULL(col1, col2, col3, col4 From table t

带来错误信息。 MAX 函数对我不起作用,因为此时也需要获取 MIN 值。

【问题讨论】:

  • 我不明白。 MySQL 应该返回多少列?

标签: mysql


【解决方案1】:

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

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

【讨论】:

  • 感谢以下错误“错误代码:1582。调用本机函数'IFNULL'时参数计数不正确”
  • 我想看看抛出这个错误的sql语句。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多