Antworten:
Versuche dies
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Verwenden Sie Str()
Funktion. Es werden drei Argumente benötigt (die Anzahl, die Anzahl der anzuzeigenden Gesamtzeichen und die Anzahl der anzuzeigenden Dezimalstellen
Select Str(12345.6789, 12, 3)
zeigt an: '12345.679' (3 Leerzeichen, 5 Stellen 12345, ein Dezimalpunkt und drei Dezimalstellen (679). - Es wird gerundet, wenn es abgeschnitten werden muss (es sei denn, der ganzzahlige Teil ist in diesem Fall zu groß für die Gesamtgröße Stattdessen werden Sternchen angezeigt.)
für insgesamt 12 Zeichen, mit 3 rechts vom Dezimalpunkt.
it rounds if it has to truncate
... es sei denn, der ganzzahlige Teil ist zu groß für die Gesamtgröße. In diesem Fall werden stattdessen Sternchen angezeigt. Dies wird in der Dokumentation für erwähntSTR
. Hier ist ein Zitat von dieser Seite:STR(1223,2) truncates the result set to **.
Im Allgemeinen können Sie die Genauigkeit einer Zahl in SQL definieren, indem Sie sie mit Parametern definieren. In den meisten Fällen ist dies NUMERIC(10,2)
oder Decimal(10,2)
- definiert eine Spalte als Zahl mit 10 Gesamtziffern mit einer Genauigkeit von 2 (Dezimalstellen).
Aus Gründen der Übersichtlichkeit bearbeitet
Diese Arbeit für mich und hält immer zweistellige Brüche
23.1 ==> 23.10
25,569 ==> 25,56
1 ==> 1,00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
So machen es die Kinder heute:
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123,46
DECLARE @test DECIMAL(18,6) = 0.456789
wird SELECT FORMAT(@test, '##.##')
Folgendes zurückgegeben: .46
Wie wird die führende Null angezeigt : 0.46
?
Versuche dies:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Multiplizieren Sie den Wert, den Sie einfügen möchten (z. B. 2,99), mit 100
Fügen Sie dann die Division durch 100 des Ergebnisses ein und fügen Sie am Ende 0,01 hinzu:
299.01/100
Dies ermöglicht insgesamt 10 Stellen mit 2 Werten nach der Dezimalstelle. Dies bedeutet, dass der Wert vor der Dezimalstelle bis zu 8 Stellen und nach der Dezimalstelle 2 Stellen aufnehmen kann.
Geben Sie zur Validierung den Wert in die folgende Abfrage ein.
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;