Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime 11.3 LTS en hoger
Retourneert het kleinste getal dat niet kleiner is dan expr afgerond op targetScale cijfers ten opzichte van het decimaalteken. Deze functie is een synoniem van ceil de functie.
Syntaxis
ceiling(expr [, targetScale])
Argumenten
-
expr: Een expressie die resulteert in een numerieke waarde. -
targetScale: Een optionele letterlijke geheel getal groter dan-38opgeven hoeveel cijfers na de decimalen moeten worden afgerond.
Retouren
Als er geen targetScale is opgegeven:
- Als
exprdat het isDECIMAL(p, s), retourneertDECIMAL(p - s + 1, 0). - Voor alle andere gevallen wordt een BIGINT geretourneerd.
Als targetScale dit is opgegeven en expr een:
TINYINTGeeft als resultaat een
DECIMAL(p, 0)metp = max(3, -targetScale + 1).SMALLINTGeeft als resultaat een
DECIMAL(p, 0)metp = max(5, -targetScale + 1).INTEGERGeeft als resultaat een
DECIMAL(p, 0)metp = max(10, -targetScale + 1)).BIGINTGeeft als resultaat een
DECIMAL(p, 0)metp = max(20, -targetScale + 1)).FLOATGeeft als resultaat een
DECIMAL(p, s)metp = max(14, -targetScale + 1))ens = min(7, max(0, targetScale))DOUBLEGeeft als resultaat een
DECIMAL(p, s)metp = max(30, -targetScale + 1))ens = min(15, max(0, targetScale))DECIMAL(p_in, s_in)Geeft als resultaat een
DECIMAL(p, s)metp = max(p_in - s_in + 1, -targetScale + 1))ens = min(s_in, max(0, targetScale))
Als targetScale dit negatief is, treedt de afronding op op -targetScale cijfers links van het decimaalteken.
De standaardwaarde targetScale is 0, waarmee het volgende grotere integraal getal naar boven wordt afgerond.
Wanneer targetScale is opgegeven met een integraal invoertype, wordt Azure Databricks ARITHMETIC_OVERFLOW als het resultaat het uitvoertype overloopt.
Waarschuwing
Als in Databricks Runtime spark.sql.ansi.enabled is false, veroorzaakt een overloop geen fout, maar 'verpakt' het resultaat.
Algemene foutvoorwaarden
Voorbeelden
> 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