bround-functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Retourneert de afgeronde expr met behulp van HALF_EVEN de afrondingsmodus.

Syntaxis

bround(expr [,targetScale] )

Argumenten

  • expr: Een numerieke expressie.

  • targetScale: Een INTEGERconstante expressie. Als targetScale u dit weglaat, is de standaardwaarde 0 (geheel getal).

    In Databricks SQL en Databricks Runtime 12.2 LTS en hoger: Als targetscale er negatieve afronding wordt uitgevoerd op positieve bevoegdheden van 10.

Retouren

Als exprDECIMAL is, is het resultaat DECIMAL met een schaal die het kleinst is van expr en max(targetScale, 0). Voor alle andere numerieke typen komt het resultaattype overeen expr.

Bij HALF_EVEN afronding, ook wel bekend als Gaussisch of bankiersafronding, wordt het cijfer 5 afgerond naar een even cijfer.

Voor HALF_UP afronding gebruikt u de ronde functie.

Voor integrale numerieke typen Azure Databricks een fout ARITHMETIC_OVERFLOW optreedt wanneer de afgeronde waarde het resultaattype overloopt.

Waarschuwing

In Databricks Runtime 12.2 LTS en hieronder, en in Databricks Runtime als spark.sql.ansi.enabled is false, veroorzaakt een overloop geen fout, maar 'verpakt' het resultaat.

Algemene foutvoorwaarden

Voorbeelden

> 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