Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Databricks Runtime 10.4 LTS e versioni successive
Restituisce il numero più grande non maggiore di expr arrotondato a targetScale cifre rispetto al separatore decimale.
Sintassi
floor(expr [, targetScale])
Argomenti
-
expr: espressione che restituisce un valore numerico. -
targetScale: valore letterale INTEGER facoltativo maggiore di quanto-38specificare il numero di cifre dopo i decimali da arrotondare verso il basso.
Valori restituiti
Se non viene specificato alcun targetScale valore:
- Se
exprèDECIMAL(p, s), restituisceDECIMAL(p - s + 1, 0). - Per tutti gli altri casi, restituisce un bigint.
Se targetScale viene specificato e expr è un:
TINYINTRestituisce un
DECIMAL(p, 0)oggetto conp = max(3, -targetScale + 1).SMALLINTRestituisce un
DECIMAL(p, 0)oggetto conp = max(5, -targetScale + 1).INTEGERRestituisce un
DECIMAL(p, 0)oggetto conp = max(10, -targetScale + 1)).BIGINTRestituisce un
DECIMAL(p, 0)oggetto conp = max(20, -targetScale + 1)).FLOATRestituisce un
DECIMAL(p, s)oggetto conp = max(14, -targetScale + 1))es = min(7, max(0, targetScale))DOUBLERestituisce un
DECIMAL(p, s)oggetto conp = max(30, -targetScale + 1))es = min(15, max(0, targetScale))DECIMAL(p_in, s_in)Restituisce un
DECIMAL(p, s)oggetto conp = max(p_in - s_in + 1, -targetScale + 1))es = min(s_in, max(0, targetScale))
Se targetScale è negativo, l'arrotondamento si verifica a -targetScale cifre a sinistra del separatore decimale.
Il valore predefinito targetScale è 0, che arrotonda fino al numero integrale più piccolo successivo.
Quando targetScale viene specificato con un tipo di input integrale, Azure Databricks genera ARITHMETIC_OVERFLOW se il risultato supera il tipo di output.
Avvertimento
In Databricks Runtime, se spark.sql.ansi.enabled è false, un overflow non genera un errore ma "esegue il wrapping" del risultato.
Condizioni di errore comuni
Esempi
> SELECT floor(-0.1);
-1
> SELECT floor(5);
5
> SELECT floor(3345.1, -2);
3300
> SELECT floor(-12.345, 1);
-12.4
-- Rounding -128 to the nearest 10 produces -130, which overflows TINYINT.
> SELECT floor(cast(-128 AS TINYINT), -1);
Error: ARITHMETIC_OVERFLOW