Funktionen floor
Gäller för: Databricks SQL Databricks Runtime 10.4 LTS och senare
Returnerar det största talet som inte är större än expr
avrundat nedåt till targetScale
siffror i förhållande till decimaltecknet.
Syntax
floor(expr [, targetScale])
Argument
expr
: Ett uttryck som utvärderas till ett numeriskt uttryck.targetScale
: En valfri INTEGER-literal som är större än-38
att ange med hur många siffror efter decimaltecknet som ska avrundas nedåt.
Returer
Om inget targetScale
anges:
- Om
expr
ärDECIMAL(p, s)
returnerar .DECIMAL(p - s + 1, 0)
- För alla andra fall returnerar en BIGINT.
Om targetScale
anges och expr
är en:
TINYINT
Returnerar ett
DECIMAL(p, 0)
medp = max(3, -targetScale + 1)
.SMALLINT
Returnerar ett
DECIMAL(p, 0)
medp = max(5, -targetScale + 1)
.INTEGER
Returnerar ett
DECIMAL(p, 0)
medp = max(10, -targetScale + 1))
.BIGINT
Returnerar ett
DECIMAL(p, 0)
medp = max(20, -targetScale + 1))
.FLOAT
Returnerar en
DECIMAL(p, s)
medp = max(14, -targetScale + 1))
ochs = min(7, max(0, targetScale))
DOUBLE
Returnerar en
DECIMAL(p, s)
medp = max(30, -targetScale + 1))
ochs = min(15, max(0, targetScale))
DECIMAL(p_in, s_in)
Returnerar en
DECIMAL(p, s)
medp = max(p_in - s_in + 1, -targetScale + 1))
ochs = min(s_in, max(0, targetScale))
Om targetScale
är negativt sker avrundningen till -targetScale
vänster om decimaltecknet.
Standardvärdet targetScale
är 0, vilket avrundar ned till nästa mindre integralnummer.
Exempel
> SELECT floor(-0.1);
-1
> SELECT floor(5);
5
> SELECT floor(3345.1, -2);
3300
> SELECT floor(-12.345, 1);
-12.4