sql >> Databáze >  >> RDS >> Oracle

Oracle SQL – kolo – polovina

Dokumentace ukazuje použitý algoritmus :

Takže byste mohli upravit kladnou, nenulovou verzi:

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

např. pro pevné zaokrouhlení a prozatím ignorování nul/záporných bodů:

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

Můžete zahrnout nulu/zápor prostřednictvím výrazu velkých a malých písmen; nebo napište svou vlastní funkci, abyste ji zvládli přehledněji.



  1. kód chyby mysql 1248

  2. Dynamické otáčení řádků do sloupců v Oracle

  3. Jak vytvořit alias datového typu definovaného uživatelem na serveru SQL pomocí T-SQL

  4. Jak použít stejnou hodnotu vícekrát v připraveném příkazu jdbc postgresql