Oracle 中的银行家四舍五入

Viv*_*pta 1 sql oracle bankers-rounding

Oracle中是否有任何内部函数支持银行家舍入,我需要在选择查询中使用半到奇数银行家舍入

MT0*_*MT0 5

舍入到最接近的奇数:

CASE
  WHEN MOD( ABS( value ), 2 ) = 1.5
  THEN TRUNC( value )
  ELSE ROUND( value )
END
Run Code Online (Sandbox Code Playgroud)

四舍五入到最接近的奇百分位:

CASE
  WHEN MOD( ABS( value ), 0.02 ) = 0.015
  THEN TRUNC( value, 2 )
  ELSE ROUND( value, 2 )
END
Run Code Online (Sandbox Code Playgroud)