2013-11-01 38 views
11

ogni volta che voglio arrotondare a 2 cifre decimali quando si tratta di zeri non vuole arrotondarlo ... come potrei arrotondarlo a 2 cifre decimali con zero alla fine che mi darebbe 92,00 anziché solo 92 ???Arrotondamento a 2 cifre decimali in SQL

SELECT ROUND(COLUMN_NAME,2) FROM .... 

mi sta dando

COLUMN_NAME 
92 

ma voglio

COLUMN_NAME 
92.00 

ho usato TO_CHAR e ha funzionato

ROUND(TO_CHAR(COLUMN_NAME),2) 

grazie ragazzi!

+0

qual è il tipo di dati di COLUMN_NAME? – IniTech

+0

Qual è il tipo di colonna? –

+0

Il tipo di dati di COLUMN_NAME deve essere float [(, )] ...... –

risposta

16

si può provare la funzione TO_CHAR per convertire il risultato

esempio

SELECT TO_CHAR(92, '99.99') AS RES FROM DUAL 

SELECT TO_CHAR(92.258, '99.99') AS RES FROM DUAL 

Speranza che aiuta

+3

Questa risposta consente solo fino a 2 cifre a sinistra del decimale anche. Nell'esempio specifico fornito dall'OP c'erano solo due cifre decimali; tuttavia, affinché questa risposta sia più applicabile, sarebbe utile se risolta per un numero qualsiasi di cifre a sinistra del decimale e esattamente due a destra. Ad esempio, se i dati contenevano 123.456 o 1234567894.83748 ecc. – kralco626

4

provare a utilizzare il comando di colonna con l'opzione di formattazione per questo:

COLUMN COLUMN_NAME FORMAT 99.99 
SELECT COLUMN_NAME FROM .... 
+0

wow grandi cose ... mai sentito COLUMN COLUMN_NAME FORMAT! grazie – Manual

+0

I suddetti problemi di arrotondamento si applicano anche a questa soluzione – alzaimar

4

cercare di evitare la formattazione nella query. Dovresti restituire i tuoi dati in un formato non elaborato e lasciare che l'applicazione ricevente (ad esempio un servizio di segnalazione o l'app per l'utente finale) esegua la formattazione, ad esempio arrotondamenti e così via.

La formattazione dei dati nel server rende più difficile (o addirittura impossibile) elaborare ulteriormente i dati. Di solito vuoi esportare la tabella o fare anche qualche aggregazione, come somma, media, ecc. Poiché i numeri arrivano come stringhe (varchar), di solito non esiste un modo semplice per elaborarli ulteriormente. Alcuni progettisti di report rifiutano persino di offrire l'opzione per aggregare questi "numeri".

Inoltre, l'utente finale vedrà la formattazione specifica del server del proprio paese invece del proprio PC.

Inoltre, considerare i problemi di arrotondamento. Se si arrotondano i valori nel server e si eseguono ancora alcuni calcoli (supponendo che il client sia in grado di ripristinare le stringhe numeriche su un numero), si otterranno risultati errati.

Problemi correlati