Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Gibt expr gerundet mit dem HALF_EVEN-Rundungsmodus zurück.
Syntax
bround(expr [,targetScale] )
Argumente
expr: Ein numerischer Ausdruck.targetScale: EinINTEGERAusdruck. WenntargetScaleausgelassen wird, ist der Standardwert 0 (ganze Zahl).In Databricks SQL und Databricks Runtime 12.2 LTS und höher: Wenn
targetscalenegativ ist, wird die Rundung auf positive Potenzen von10ausgeführt.
Gibt zurück
Wenn exprDECIMAL ist, ist das Ergebnis DECIMAL mit einer Skalierung, die kleiner ist von expr und max(targetScale, 0).
Für alle anderen numerischen Typen entspricht der Ergebnistyp expr.
Bei der HALF_EVEN Rundung, auch als Gaussian oder Banker's Rundung bekannt, wird die Ziffer 5 auf eine gerade Ziffer gerundet.
Verwenden Sie für HALF_UP Rundungen die Rundfunktion.
Bei integralen numerischen Typen löst Azure Databricks einen Fehler ARITHMETIC_OVERFLOW aus, wenn der gerundete Wert den Ergebnistyp überläuft.
Warnung
Vor Databricks Runtime 12.2 LTS und wenn in Databricks Runtime spark.sql.ansi.enabledfalse ist, verursacht ein Überlauf keinen Fehler, sondern „umschließt“ stattdessen das Ergebnis.
Häufige Fehlerbedingungen
Beispiele
> SELECT bround(2.5, 0), round(2.5, 0);
2 3
> SELECT bround(3.5, 0), round(3.5, 0);
4 4
> SELECT bround(2.6, 0), round(2.6, 0);
3 3
> SELECT bround(2.25, 1), round(2.25, 1);
2.2 2.3
> SELECT bround(13.5, -1), round(13.5, -1);
10 10
-- Rounding 127 to the nearest 10 produces 130, which overflows TINYINT.
> SELECT bround(cast(127 AS TINYINT), -1);
Error: ARITHMETIC_OVERFLOW