floor-Funktion

Gilt für:Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 10.0 und höher

Gibt die größte Zahl zurück, die nicht größer als expr ist, abgerundet auf targetScale-Ziffern in Relation zum Dezimalpunkt.

Syntax

floor(expr [, targetScale])

Argumente

  • expr: Ein Ausdruck, der in einen numerischen Wert ausgewertet wird.
  • targetScale: Ein optionaler INTEGER-Literal größer als -38 gibt an, wie viele Ziffern nach dem Dezimalpunkt nach der Abrundung angegeben werden.

Gibt zurück

Wenn keine targetScale angegeben wird:

  • Wenn expr gleich DECIMAL(p, s) ist, wird DECIMAL(p - s + 1, 0) zurückgegeben.
  • In allen anderen Fällen wird ein BIGINT-Wert zurückgegeben.

Wenn targetScale angegeben und expr Folgendes ist:

  • TINYINT

    Gibt einen DECIMAL(p, 0)-Wert mit p = max(3, -targetScale + 1) zurück.

  • SMALLINT

    Gibt einen DECIMAL(p, 0)-Wert mit p = max(5, -targetScale + 1) zurück.

  • INTEGER

    Gibt einen DECIMAL(p, 0)-Wert mit p = max(10, -targetScale + 1)) zurück.

  • BIGINT

    Gibt einen DECIMAL(p, 0)-Wert mit p = max(20, -targetScale + 1)) zurück.

  • FLOAT

    Gibt einen DECIMAL(p, s)-Wert mit p = max(14, -targetScale + 1)) und s = min(7, max(0, targetScale)) zurück.

  • DOUBLE

    Gibt einen DECIMAL(p, s)-Wert mit p = max(30, -targetScale + 1)) und s = min(15, max(0, targetScale)) zurück.

  • DECIMAL(p_in, s_in)

    Gibt einen DECIMAL(p, s)-Wert mit p = max(p_in - s_in + 1, -targetScale + 1)) und s = min(s_in, max(0, targetScale)) zurück.

Wenn targetScale negativ ist, erfolgt die Rundung an -targetScale Ziffern links neben dem Dezimalpunkt auf.

Der Standardwert targetScale ist 0, der auf die nächstkleinere integrale Zahl abgerundet wird.

Beispiele

> SELECT floor(-0.1);
 -1

> SELECT floor(5);
 5

> SELECT floor(3345.1, -2);
 3300

> SELECT floor(-12.345, 1);
 -12.4