Unnötige nachgestellte Nullen aus SQL Server-Dezimaldaten entfernen
Der DECIMAL
-Datentyp von SQL Server (z. B. DECIMAL(9,6)
) speichert Zahlen mit definierter Genauigkeit und Skalierung. Manchmal werden beim Einfügen von Daten zusätzliche abschließende Nullen angehängt.
Problem: Wie kann man diese überflüssigen nachgestellten Nullen entfernen?
Lösung:
Der Schlüssel liegt darin, zu verstehen, dass nachgestellte Nullen in DECIMAL
Werten eine Frage der Anzeige und nicht der inhärenten Datenspeicherung sind. Die Datenbank speichert den Wert; Die Formatierung der Clientanwendung bestimmt, wie sie angezeigt wird. Eine effektive Methode besteht darin, die Datentypkonvertierung zu nutzen.
Durch die Umwandlung eines DECIMAL
in einen FLOAT
-Datentyp und dann zurück in DECIMAL
werden nachgestellte Nullen entfernt. FLOAT
Darstellungen behalten normalerweise keine unbedeutenden Nullen bei.
Beispiel:
<code class="language-sql">SELECT CAST(123.4567 AS DECIMAL(9,6)) AS OriginalDecimal, CAST(CAST(123.4567 AS FLOAT) AS DECIMAL(9,6)) AS TrimmedDecimal</code>
Ergebnis:
OriginalDecimal | TrimmedDecimal |
---|---|
123.456700 | 123.4567 |
Dies zeigt, wie die Umwandlung in FLOAT
und zurück in DECIMAL
nachfolgende Nullen effektiv kürzt, ohne den zugrunde liegenden numerischen Wert zu ändern. Beachten Sie, dass dieser Ansatz aufgrund der Art der Gleitkommadarstellung in bestimmten Grenzfällen zu geringfügigen Rundungsfehlern führen kann. Für kritische Anwendungen, die absolute Präzision erfordern, sollten alternative Methoden untersucht werden.
Das obige ist der detaillierte Inhalt vonWie eliminiere ich nachgestellte Nullen aus SQL Server-Dezimalwerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!