SELECT 具有 MYSQL 的两列之间的最小值

SELECT least value between two columns with MYSQL

您好,我正在尝试 select 3 列与 MySQL 之间的最小值。

我面临的问题是在一个列中我可能有 NULL 值。我怎样才能得到不是 NULL 的最小值?

运行 select least(1, 3, NULL) 将 return NULL 但我希望得到 1 作为答案。

感谢您的帮助。

least() 处理 null 的方式是 a documented behavior

If any argument is NULL, the result is NULL. No comparison is needed.

这可能看起来很烦人,但是将 null 值传播到结果集是您的数据库向您发出信号表明您的值之一未定义的方式;这与涉及 null(字符串连接、算术运算等)的其他操作的行为一致。

如果只有第三列可能是 null,而其他两列是 none,您可以这样做:

least(col1, col2, coalesce(col3, col1))