floor
-Funktion
Gilt für: Databricks SQL Databricks Runtime 10.4 LTS 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
gleichDECIMAL(p, s)
ist, wirdDECIMAL(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 mitp = max(3, -targetScale + 1)
zurück.SMALLINT
Gibt einen
DECIMAL(p, 0)
-Wert mitp = max(5, -targetScale + 1)
zurück.INTEGER
Gibt einen
DECIMAL(p, 0)
-Wert mitp = max(10, -targetScale + 1))
zurück.BIGINT
Gibt einen
DECIMAL(p, 0)
-Wert mitp = max(20, -targetScale + 1))
zurück.FLOAT
Gibt einen
DECIMAL(p, s)
-Wert mitp = max(14, -targetScale + 1))
unds = min(7, max(0, targetScale))
zurück.DOUBLE
Gibt einen
DECIMAL(p, s)
-Wert mitp = max(30, -targetScale + 1))
unds = min(15, max(0, targetScale))
zurück.DECIMAL(p_in, s_in)
Gibt einen
DECIMAL(p, s)
-Wert mitp = max(p_in - s_in + 1, -targetScale + 1))
unds = 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