【问题标题】:Is there a function equivalent to the Oracle's NVL in MySQL?MySQL中是否有相当于Oracle的NVL的功能?
【发布时间】:2011-11-06 13:24:08
【问题描述】:

我正在从表中选择一列的最大值。但是有一个问题:如果表中没有行,则返回null。

我想使用一个函数,如果结果为空,它将返回某个值。例如,对于 Oracle,有一个 NVL 函数,如果该列为空,它会给出一个特定的值。 MySQL中是否有等价的功能?

【问题讨论】:

    标签: mysql coalesce nvl


    【解决方案1】:

    使用coalesce:

    select coalesce(column_name, 'NULL VALUE') from the_table
    

    【讨论】:

    • 那是 NVL 的 SQL 标准版本,也适用于 Oracle(我相信从 9i 开始)。
    • 问题问 “但是有一个问题:如果表中没有行,则返回 null。” 但是,coalesce 并没有解决这个问题 - 如果没有返回行,然后不返回任何行。它所做的只是确保某个列的非空值返回一些行但是,oracle中的nvl也没有:)
    • @亚当。即使表中没有行,聚合函数max 也将返回单行(其中包含 null)。合并所做的所有事情(以及所有被问到的问题)都是将 null 更改为默认值。
    猜你喜欢
    • 2012-08-02
    • 2014-04-02
    • 2012-06-18
    • 2023-03-31
    • 1970-01-01
    • 2012-01-07
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多