Oracle中取某几个数的最大值最小值
Oracle中取某几个数的最大值最小值
一直有误区认为Oracle或者说关系型数据库中没有取某些数据中最大值最小值的函数,其实是存在的 分别为:greatest( expr1, expr2, ... expr_n )
least( expr1, expr2, ... expr_n )
如图:
上述两个函数都使用 N 个参数,并分别返回最大值和最小值。 另需注意参数可能具有混合数据类型。
具体规则如下:
- 如果任何参数为null,则两个函数都将立即返回 null ,而不进行任何比较。
- 如果为int或real 上下文中使用函数,或者所有参数都是整数值或real值,那么他们将分别为int和real来比较。
- 如果参数由数字和字符串组成,则函数将它们作成数字进行比较。
- 如果至少一个参数是非二进制(字符)字符串,则函数将将参数作为非二进制字符串进行比较。
- 在所有其他情况下,函数将参数作为二进制字符串进行比较