Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Formatieren eines numerischen SQL-Abfrageergebnisses mit einer beliebigen Anzahl von Dezimalstellen

Ihr Problem ist, dass es keine einfache Möglichkeit gibt, dies sowohl für SQLServer als auch für Oracle in einer Abfrage zu tun.

Der richtige Weg, dies für SQLServer zu tun, ist die Verwendung von STR:

Select STR(Amount, 18, DecimalPlaces) from myTable;

Der richtige Weg, dies für Oracle zu tun, ist die Verwendung von to_char:

SELECT to_char (amount, '99999999999999.'||rpad('',DecimalPlaces, '0')) 
from MyTable;

Die von jms und Andrew präsentierten Abfragen funktionieren nicht in einer Oracle-Abfrage, da Oracle SQL LENGTH() und nicht LEN() verwendet. Und Oracle verwendet to_char() nicht Cast().