MySQL中是不是有相当于Oracle的NVL的功能?

Posted

技术标签:

【中文标题】MySQL中是不是有相当于Oracle的NVL的功能?【英文标题】: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中是否有等价的功能?

【问题讨论】:

【参考方案1】:

使用coalesce:

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

【讨论】:

那是 NVL 的 SQL 标准版本,也适用于 Oracle(我相信从 9i 开始)。 问题问 “但是有一个问题:如果表中没有行,则返回 null。” 但是,coalesce 并没有解决这个问题 - 如果没有返回行,然后不返回任何行。它所做的只是确保某个列的非空值返回一些行但是,oracle中的nvl也没有:) @亚当。即使表中没有行,聚合函数max 也将返回单行(其中包含 null)。合并所做的所有事情(以及所有被问到的问题)都是将 null 更改为默认值。

以上是关于MySQL中是不是有相当于Oracle的NVL的功能?的主要内容,如果未能解决你的问题,请参考以下文章

mysql中有和Oracle中的nvl2(expr1,expr2,expr3)效果一样的函数么?

nvl() 数值替换函数 oracle使用

在oracle数据库中nvl()是啥函数?

在oracle数据库中nvl()是啥函数?

oracle中v:=:1:2啥意思

oracle中nvl()函数有啥用啊?