Wie man Dezimalstellen in SQL Server ohne Runden Trunkieren kann

Beim Arbeiten mit Dezimalwerten in SQL Server kann es manchmal notwendig sein, die Anzahl der Dezimalstellen in Ihren Daten zu verwalten. Die typische ROUND-Funktion rundet die Zahl, was möglicherweise nicht für alle Szenarien geeignet ist. In diesem Blogbeitrag werden wir untersuchen, wie man Dezimalstellen in SQL Server ohne Runden truncieren kann.

Das Problem: Runden vs. Trunkieren

Stellen Sie sich vor, Sie haben einen Dezimalwert wie 123.456, und Sie möchten ihn auf zwei Dezimalstellen beschränken. Die Verwendung der Standard-Rundungsmethoden in SQL Server würde den Wert automatisch auf 123.46 anpassen. Es gibt jedoch Situationen, in denen Sie nur die zusätzlichen Dezimalstellen entfernen möchten, was in 123.45 resultiert. Hier wird das Trunkieren unerlässlich.

Werfen wir einen kurzen Blick auf einen Beispielwert:

DECLARE @value DECIMAL(18,2);
SET @value = 123.456;

Nach der Ausführung dieses Codes mit Standard-Rundung würde @value zu 123.46 werden. Aber was, wenn Sie es als 123.45 behalten möchten?

Die Lösung: Verwendung der ROUND-Funktion

SQL Server bietet eine leistungsstarke ROUND-Funktion, die Ihnen hilft, Dezimalstellen zu truncieren. Die Funktion benötigt drei Parameter:

  1. number: Dies ist der Dezimalwert, den Sie truncieren möchten.
  2. decimals: Geben Sie an, wie viele Dezimalstellen Sie beibehalten möchten.
  3. operation: Dies ist optional. Setzen Sie diesen Parameter auf 0, um das Ergebnis zu runden, oder auf einen anderen Wert (zum Beispiel 1), um es zu truncieren.

Beispielverwendung

So verwenden Sie die ROUND-Funktion effektiv:

SELECT ROUND(123.456, 2, 1);

In diesem Fall wird die Verwendung von 1 als drittem Parameter den Wert auf 123.45 truncieren, anstatt ihn zu runden.

Kompatibilität

Die ROUND-Funktion mit Trunkierungsfunktionen funktioniert in den folgenden Umgebungen:

  • SQL Server (beginnend mit Version 2008)
  • Azure SQL-Datenbank
  • Azure SQL-Datenlager
  • Parallel Data Warehouse

Für weitere Details können Sie auf die W3Schools SQL Server ROUND-Dokumentation verweisen.

Fazit

Durch die Verwendung der ROUND-Funktion mit den entsprechenden Parametern können Sie ganz einfach Dezimalstellen in SQL Server ohne das Runden Ihrer Werte truncieren. Diese Methode stellt sicher, dass Sie eine präzise Kontrolle über die Präsentation Ihrer Daten haben und die Integrität sowie die Genauigkeit beibehalten, die für Ihre spezifischen Projektbedürfnisse erforderlich sind.

Probieren Sie diese Technik in Ihrer eigenen SQL Server-Umgebung aus und stellen Sie sicher, dass Ihre Daten genau so formatiert sind, wie Sie es benötigen!