SQL hat drei Funktionen , die Werte auf eine bestimmte Anzahl von Dezimalstellen zu runden. Sie können diese Funktionen für eine Vielzahl von Datenbank -bezogene Probleme , angefangen von loszuwerden Fraktionen Pennies auf Finanztransaktionen Regularisierung Daten Eingänge von mehreren wissenschaftlichen Instrumenten zu lösen. Wenn Sie neu in SQL sind, können ihre Rundungsfunktionen scheint ein wenig seltsam , und kann ein paar Anpassungsprobleme verursachen. Konventionelle Abgerundet
SQL die "ROUND ()" -Funktion nimmt einen vorhandenen Wert und rundet auf die angegebene Anzahl von Dezimalstellen. Das Format ist wie folgt:
ROUND ( [Wert] , [n ], [1 ] ) )
Hier " [Wert] " ist ein Dezimalwert , und " [n] " ist die Anzahl der Ziffern der Wert gerundet werden sollen. Konventionelle Rundung Runden Werte von 0,5 oder mehr auf, und die Werte von 0,49 und tiefer . Wenn Sie den Wert auf "0" Runden auf ganzzahlige Werte ; Setzen Sie den Wert auf "-1" Runden auf das nächste Vielfache von 10 . Die " ROUND ( ) "-Funktion der dritten Parameter " [1], " schneidet die Zahl auf die angegebene Anzahl von Dezimalstellen , wenn zu jedem Wert ungleich null gesetzt . Eine bedeutende Quelle von unerwarteten Problemen kommen, wenn Rundung aufgrund eines Schreibfehlers , der dritte Parameter eingestellt ist und die Anzahl kürzt anstatt Runden.
Boden und Decke
SQL verwendet den " FLOOR ( ) "-Funktion zu zwingen Werte zu runden auf den nächsten Wert , und der " ceiling () "-Funktion zum aufrunden auf den nächsten Wert . Beide Funktionen geben Integer-Werte , auch mit einem float -Datentyp mit einer Anzahl von Nachkommastellen angegeben gibt einen Wert mit Nullen nach dem Komma
Empfohlene Datentypen
< . br> die
wahrscheinlichste Grund für Rundungsfehler in SQL stammt aus mit einem unerwarteten Datentyp für den numerischen Ausdruck in der "ROUND ()" -Funktion oder von der Verwendung " FLOOR ( )" oder " CEILING ( ) " und erwartet einen decimal-Datentyp , anstatt eine ganze Zahl zu erhalten. Wenn Ihre SQL-Funktion gibt Ihnen unerwartete Rundung Ergebnisse , stellen Sie sicher , dass die " CAST ( ) "-Funktion, die die Anzahl ist den Datentyp auf " integer ", "decimal hat ", " Geld " oder " smallmoney . " die "decimal " Datentyp wird nur 38 Stellen insgesamt , die eine Einschränkung, dass nur wenige Menschen außerhalb der wissenschaftlichen Gemeinschaft in .
Andere Datentypen
Zwei Datentypen zurückgeben Zahlenwerte , die Probleme mit dem " ROUND ( ) "-Funktion führen kann. Dies sind "echte" und "float" Anzahl Arten in SQL verwendet werden, um sehr kleine Fraktionen, die von den meisten Sorten von SQL bekommen im letzten Dezimalstelle in den Datentyp gerundet angegeben aufzeichnen , einige SQL-Implementierungen Runde auf Null , abrunden oder runden konventionell . Wenn Sie Daten in eine SQL- Datenbank, die unter Verwendung könnte die "echte" oder "float" Datentypen , verwenden Sie den " CAST ( )" oder " Convert () "-Funktionen zugeführt , um sie in die konvertieren "decimal " Datentyp.