MySQL中是否有等同于Oracle的NVL函数的功能?

28

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

我想使用一个函数,如果结果为null则返回特定的值。例如,在Oracle中有NVL函数,如果列为null,它会给出一个特定的值。在MySQL中是否有等价的函数?

2个回答

52

使用 coalesce 函数:

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

4
这是 NVL 的 SQL 标准版本,在 Oracle 中也适用(我相信从 9i 开始)。 - Thilo
2
问题是这样的:“但是有一个问题:如果表中没有行,则返回null。” 然而,coalesce并不能解决这个问题 - 如果没有返回行,则不会返回任何行。它所做的只是确保对于某些返回的行,某个列具有非空值。但是,在Oracle中,nvl也不能解决这个问题 :) - Adam
1
@Adam。聚合函数max即使表中没有行,也会返回单行(其中包含null)。Coalesce所做的(以及所提出的所有问题)只是将该null更改为默认值。 - Thilo

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接