Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 10.4 LTS ve üzeri
Ondalık ayırıcıya göre basamaklara expr yuvarlanmış olandan targetScale büyük olmayan en büyük sayıyı döndürür.
Söz dizimi
floor(expr [, targetScale])
Bağımsız değişkenler
-
expr: Sayısal olarak değerlendirilen ifade. -
targetScale: Ondalık ayırıcıdan sonra aşağı yuvarlanacak basamak sayısıyla belirtilenden-38daha büyük isteğe bağlı TAMSAYı değişmez değeri.
Döndürülenler
Hayır targetScale ise:
- ise
exprDECIMAL(p, s), döndürürDECIMAL(p - s + 1, 0). - Diğer tüm durumlarda bir BIGINT döndürür.
Belirtilirse targetScale ve expr bir ise:
TINYINTile bir
DECIMAL(p, 0)p = max(3, -targetScale + 1)döndürür.SMALLINTile bir
DECIMAL(p, 0)p = max(5, -targetScale + 1)döndürür.INTEGERile bir
DECIMAL(p, 0)p = max(10, -targetScale + 1))döndürür.BIGINTile bir
DECIMAL(p, 0)p = max(20, -targetScale + 1))döndürür.FLOATve ile değerini
DECIMAL(p, s)p = max(14, -targetScale + 1))döndürürs = min(7, max(0, targetScale))DOUBLEve ile değerini
DECIMAL(p, s)p = max(30, -targetScale + 1))döndürürs = min(15, max(0, targetScale))DECIMAL(p_in, s_in)ve ile değerini
DECIMAL(p, s)p = max(p_in - s_in + 1, -targetScale + 1))döndürürs = min(s_in, max(0, targetScale))
Negatifse targetScale , yuvarlama ondalık noktasının solundaki basamaklara -targetScale gerçekleşir.
Varsayılan targetScale değer 0'dır ve sonraki küçük tam sayıya yuvarlanır.
targetScale bir integral giriş türüyle belirtildiğinde, Azure Databricks ARITHMETIC_OVERFLOW sonucu çıkış türü taşıyorsa yükseltir.
Uyarı
Databricks Runtime'da , spark.sql.ansi.enabled ise false, taşma bir hataya neden olmaz, ancak sonucu "sarmalar".
Yaygın hata koşulları
Örnekler
> 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