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的功能?的主要内容,如果未能解决你的问题,请参考以下文章