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))
您好,我正在尝试 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 isNULL
. No comparison is needed.
这可能看起来很烦人,但是将 null
值传播到结果集是您的数据库向您发出信号表明您的值之一未定义的方式;这与涉及 null
(字符串连接、算术运算等)的其他操作的行为一致。
如果只有第三列可能是 null
,而其他两列是 none,您可以这样做:
least(col1, col2, coalesce(col3, col1))