2013-07-22 16 views
5

Muszę znaleźć następną 10 cyfr w zapytaniu.jak zaokrąglić do następnej 10 w oracle?

Próbuję użyć rundy (n, -1), ale zaokrągla się do najbliższej 10 cyfr, ale potrzebuję następnej 10 cyfr.

Proszę, pomóż mi.

select round(5834.6,-1) from dual 

daje 5830 ale muszę 5840

+1

Dodaj 10 do liczby i zaokrąglij sumę. –

Odpowiedz

1

Następnie dodać "5":

select round(5834.6 + 5,-1) from dual 
+0

Tak myślałem, ale http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions135.htm sugeruje, że zaokrąglanie używane przez 'ROUND' jest zależne od typu danych ... 4.999, a następnie dla innych typy danych? – fvu

+0

@fvu. . . Zależność typu danych ma wpływ tylko wtedy, gdy wartość jest w połowie lub pomiędzy jednym, a nieco niższym bitem. W każdym przypadku rozwiązanie Sebas powinno spełniać Twoje potrzeby. –

9
select ceil(5834.6/10)*10 from dual 
0

Ogólny rozwiązanie - Wykorzystanie MOD znaleźć ostatnią 10. miejsce, a następnie dodać 10 do wynik.

select (5834.6 - MOD(5834.6,10)) + 10 from dual; 

Jeśli potrzebujesz następnego 8 miejsca, po prostu zastąp dowolne "10" literą "8".

Powiązane problemy