2013-07-22 16 views
5

Ho bisogno di trovare il numero di 10 cifre successivo in una query.come arrotondare al prossimo 10 in oracolo?

Provo a usare round (n, -1) ma si arrotonda a 10 cifre più vicine, ma ho bisogno delle 10 cifre successive.

Per favore aiutatemi.

select round(5834.6,-1) from dual 

dà 5830 ma ho bisogno di 5840

+1

Aggiungere 10 al numero e arrotondare la somma. –

risposta

1

Quindi aggiungere "5":

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

Questo è quello che pensavo, ma http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions135.htm sembra suggerire che l'arrotondamento utilizzato da 'ROUND' dipende dal tipo di dati ... 4.999 quindi per altri tipi di dati? – fvu

+0

@fvu. . . La dipendenza del tipo di dati ha un effetto solo quando il valore è a metà strada o un bit di ordine basso a partire da quello. In ogni caso, la soluzione di Sebas dovrebbe soddisfare le tue esigenze. –

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

Una soluzione generica - Usa MOD per trovare l'ultimo 10 ° posto e quindi aggiungere 10 a il risultato.

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

Se è necessario il prossimo 8 ° posto, è sufficiente sostituire qualsiasi "10" con "8".

Problemi correlati