您好,我正在尝试使用 MySQL 选择 3 列之间的最小值。
我面临的问题是,在列中我可能NULL
有价值。我怎样才能得到不是的最小价值NULL
?
跑步select least(1, 3, NULL)
会回来NULL
,但我想有1
一个答案。
谢谢您的帮助。
least()
处理null
s的方式是记录在案的行为:
如果任何参数为
NULL
,则结果为NULL
。不需要比较。
这可能看起来很烦人,但是将值传播null
到结果集是您的数据库向您发出信号表明您的值之一未定义的方式;null
这与涉及(字符串连接、算术运算等)的其他操作的行为一致。
如果只有第三列可能是null
,而其他两列都不是,您可以这样做:
least(col1, col2, coalesce(col3, col1))