2009-11-04 5 views

Antwort

10

Versuchen Sie, dieses

select CAST(round(100.5555, 2) AS DECIMAL(8,2)) 
+0

Was passiert, wenn ich die Länge 8 nicht kenne, ist das einzige, was ich weiß, dass ich 2 Stellen arter Punkt brauche? – Alex

+1

@astander: Ich habe es, 8 ist maximal, also kann ich einfach jede genügend große Zahl setzen. Vielen Dank! – Alex

+0

Sie können keine Spalte innerhalb der DECIMAL (8, xxx) -Funktion geben –

1

declare @ d dezimal (8,2) kann Ihnen helfen.

4

Sie könnten es als Ihren ursprünglichen Datentyp erneut gegossen, z.B.

SELECT CAST(ROUND(100.5555, 2) AS FLOAT) 

jedoch das klingt wie Logik-Display und deshalb vermute ich, sind Sie besser dran tun dies in Ihrem UI anstatt Ihre DB.

+0

funktioniert nicht auf MySQL –

+0

Benötigte diese Version, da meine Abfrage die RUNDE basierend auf SI-Einheiten spezifizierte und Zeile für Zeile variierte, wie @NicolasThery angegeben - Sie können eine Spalte nicht an die DECIMAL-Funktion übergeben, aber Sie können die RUNDE eins. – Morvael