Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 11.3 LTS és újabb
A legkisebb számot adja vissza, amely nem kisebb, mint expr a tizedesvesszőhöz viszonyított számjegyekre kerekítve targetScale . Ez a függvény a függvény szinonimájaceil.
Syntax
ceiling(expr [, targetScale])
Argumentumok
-
expr: Numerikus értéket kiértékelő kifejezés. -
targetScale: Egy nem kötelező EGÉSZ SZÁM literál nagyobb, mint-38annak megadása, hogy hány számjegy legyen kerekítve a tizedesvesszők után.
Válaszok
Ha nincs targetScale megadva:
- Ha
exprigenDECIMAL(p, s), akkor a visszaadott értékDECIMAL(p - s + 1, 0). - Minden más esetben egy BIGINT értéket ad vissza.
Ha targetScale meg van adva, és expr a következő:
TINYINTEgy a
DECIMAL(p, 0)withp = max(3, -targetScale + 1)értéket ad vissza.SMALLINTEgy a
DECIMAL(p, 0)withp = max(5, -targetScale + 1)értéket ad vissza.INTEGEREgy a
DECIMAL(p, 0)withp = max(10, -targetScale + 1))értéket ad vissza.BIGINTEgy a
DECIMAL(p, 0)withp = max(20, -targetScale + 1))értéket ad vissza.FLOATA with
DECIMAL(p, s)p = max(14, -targetScale + 1))és as = min(7, max(0, targetScale))DOUBLEA with
DECIMAL(p, s)p = max(30, -targetScale + 1))és as = min(15, max(0, targetScale))DECIMAL(p_in, s_in)A with
DECIMAL(p, s)p = max(p_in - s_in + 1, -targetScale + 1))és as = min(s_in, max(0, targetScale))
Ha targetScale negatív, akkor a kerekítés a tizedesvessző bal oldalán lévő számjegyekre történik -targetScale .
Az alapértelmezett targetScale érték 0, amely felfelé kerekít a következő nagyobb integrálszámra.
Ha targetScale egy integrált bemeneti típussal van megadva, Azure Databricks ARITHMETIC_OVERFLOW, ha az eredmény túlcsordul a kimeneti típuson.
Figyelmeztetés
A Databricks Runtime-ban, ha spark.sql.ansi.enabled van false, a túlcsordulás nem okoz hibát, hanem "körbefuttatja" az eredményt.
Gyakori hibafeltételek
Példák
> SELECT ceiling(-0.1);
0
> SELECT ceiling(5);
5
> SELECT ceiling(5.4);
6
> SELECT ceiling(3345.1, -2);
3400
> SELECT ceiling(-12.345, 1);
-12.3
-- Rounding 127 to the nearest 10 produces 130, which overflows TINYINT.
> SELECT ceiling(cast(127 AS TINYINT), -1);
Error: ARITHMETIC_OVERFLOW