sql >> Database teknologi >  >> RDS >> Oracle

Oracle SQL - Runde - Halv

Dokumentationen viser dig den anvendte algoritme :

Så du kunne ændre den positive version uden nul:

FLOOR(n * POWER(10, integer) + 0.4) * POWER(10, -integer)
                                 ^
 

for eksempel. for en fast afrunding, og ignorer nuller/negativ for nu:

with t (my_number) as ( select 3.674 from dual union all select 3.675 from dual union all select 3.676 from dual ) select my_number, floor(my_number * power(10, 2) + 0.4) * power(10, -2) as round_on_number from t; MY_NUMBER ROUND_ON_NUMBER ---------- --------------- 3.674 3.67 3.675 3.67 3.676 3.68

Du kan inkludere nul/negativ via et kasusudtryk; eller skriv din egen funktion for at håndtere den mere pænt.



  1. oracle binære datatyper

  2. Oracle flette konstanter til en enkelt tabel

  3. Opdater uden hvor-klausul

  4. Hvor er ojdbc jar-filen