我想在我的程序中使用函数LEAST来找到最小值。问题是某些值可能为NULL,所以如果我这样做
select least(NULL,0,1) from dual
我得到的答案是NULL,这可能是正确的,不是我希望返回的东西。我想得到最小的非零值。任何帮助,不胜感激。
我怀疑这实际上是您的查询。也许您正在做更多这样的事情?
select least(some_column) from dual
如果是这样,请将其更改为:
select least(some_column) from dual where some_column is not null
或者,如果您正在做更多类似的事情,那么您不仅可以使用它where来过滤集合,
where
select least(expr1,expr2,expr3) from dual
做这个:
select least(coalesce(expr1, 12345), coalesce(expr2, 12345), coalesce(expr3, 12345)) from dual
哪里12345的值足够大,只有在所有其他表达式都为的情况下才会选择该值NULL。
12345
NULL