sql >> Database >  >> RDS >> Oracle

Oracle SQL - Rond - Half

De documentatie toont u het gebruikte algoritme :

U kunt dus de positieve, niet-nulversie wijzigen:

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

bijv. voor een vaste afronding en het negeren van nullen/negatief voor 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

U kunt nul/negatief opnemen via een case-expressie; of schrijf je eigen functie om er netter mee om te gaan.



  1. SQL Developer voor importeren vanuit Excel

  2. Hoe automatisch opnieuw te plaatsen na het gebruik van identity_insert?

  3. Kan varchar niet converteren naar datetime in MySql

  4. Magento installeren, krijg databaseverbindingsfout.