Heim >Datenbank >MySQL-Tutorial >Wie rundet man numerische Werte in SQL auf zwei Dezimalstellen?

Wie rundet man numerische Werte in SQL auf zwei Dezimalstellen?

DDD
DDDOriginal
2025-01-07 13:22:42408Durchsuche

How to Round Numerical Values to Two Decimal Places in SQL?

Runden numerischer Werte auf zwei Dezimalstellen in SQL

Das Runden numerischer Werte auf bestimmte Dezimalstellen ist häufig erforderlich, wenn Daten konsistent angezeigt werden sollen und präzise Art und Weise. In SQL kann diese Aufgabe mit verschiedenen Funktionen und Techniken gelöst werden.

Beispielszenario

Stellen Sie sich die Aufgabe vor, Minuten in Stunden umzuwandeln, gerundet auf zwei Dezimalstellen, während Stellen Sie sicher, dass nur zwei Ziffern nach dem Dezimalpunkt angezeigt werden. Die Umrechnung von 650 Minuten in Stunden sollte beispielsweise 10,83 ergeben. Die Verwendung der folgenden SQL-Abfrage:

Select round(Minutes/60.0,2) from ....

ergibt jedoch ein Ergebnis von 10,5000000 für 630 Minuten. Ziel ist es, stattdessen einen gerundeten Wert von 10,50 zu erhalten.

Lösung

Um die gewünschte Rundung mit präziser Dezimalpunktsteuerung zu erreichen, können Sie die folgende Technik anwenden:

select
    round(630/60.0,2),
    cast(round(630/60.0,2) as numeric(36,2))

Die Funktion „round()“ allein bietet keine Kontrolle über die Anzahl der angezeigten Dezimalstellen. Indem Sie den gerundeten Wert jedoch in einen numerischen Typ mit angemessener Genauigkeit umwandeln (z. B. numeric(36,2)), können Sie die Ausgabe auf zwei Dezimalstellen beschränken.

Erklärung

  • Die Funktion „round()“ rundet den Ausdruck 630/60,0 auf zwei Dezimalstellen und ergibt: 10,500000.
  • Die Funktion cast() wandelt den gerundeten Wert in einen numerischen Datentyp mit einer Genauigkeit von 36 und einer Skalierung von 2 um. Dadurch wird die Ausgabe auf zwei Dezimalstellen beschränkt und alle zusätzlichen Ziffern werden abgeschnitten.

Erwartete Ausgabe

Ausführen der Überarbeitung Die SQL-Abfrage gibt für die angegebenen Beispiele die folgenden Ergebnisse zurück:

10.500000    10.50

Dadurch wird der Wert genau auf zwei Dezimalstellen gerundet, sodass in der zweiten Spalte nur 10,50 angezeigt wird.

Das obige ist der detaillierte Inhalt vonWie rundet man numerische Werte in SQL auf zwei Dezimalstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn