Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 11.3 LTS ke atas
Mengembalikan angka terkecil yang tidak lebih kecil dari expr yang dibulatkan ke atas ke targetScale digit relatif terhadap titik desimal. Fungsi ini adalah sinonim dari fungsiceiling.
Sintaks
ceil(expr [, targetScale])
Argumen
-
expr: Ekspresi yang mengevaluasi ke numerik. -
targetScale: BILANGAN BULAT opsional lebih besar dari-38yang ditentukan oleh berapa banyak digit setelah titik desimal yang dibulatkan ke atas.
Mengembalikan
Jika tidak ada targetScale yang diberikan:
- Jika
expradalahDECIMAL(p, s), mengembalikanDECIMAL(p - s + 1, 0). - Untuk semua kasus lain, kembalikan BIGINT.
Jika targetScale ditentukan dan expr merupakan:
TINYINTMengembalikan
DECIMAL(p, 0)denganp = max(3, -targetScale + 1).SMALLINTMengembalikan
DECIMAL(p, 0)denganp = max(5, -targetScale + 1).INTEGERMengembalikan
DECIMAL(p, 0)denganp = max(10, -targetScale + 1)).BIGINTMengembalikan
DECIMAL(p, 0)denganp = max(20, -targetScale + 1)).FLOATMengembalikan
DECIMAL(p, s)denganp = max(14, -targetScale + 1))dans = min(7, max(0, targetScale))DOUBLEMengembalikan
DECIMAL(p, s)denganp = max(30, -targetScale + 1))dans = min(15, max(0, targetScale))DECIMAL(p_in, s_in)Mengembalikan
DECIMAL(p, s)denganp = max(p_in - s_in + 1, -targetScale + 1))dans = min(s_in, max(0, targetScale))
Jika targetScale negatif, pembulatan dilakukan ke -targetScale digit di sebelah kiri titik desimal.
Defaultnya targetScale adalah 0, yang dibulatkan ke atas ke angka integral berikutnya yang lebih besar.
Ketika targetScale ditentukan dengan jenis input integral, Azure Databricks menaikkan ARITHMETIC_OVERFLOW jika hasilnya meluapkan jenis output.
Peringatan
Dalam Databricks Runtime, jika spark.sql.ansi.enabled adalah false, luapan tidak menyebabkan kesalahan tetapi "membungkus" hasilnya sebagai gantinya.
Kondisi kesalahan umum
Contoh
> SELECT ceil(-0.1);
0
> SELECT ceil(5);
5
> SELECT ceil(5.4);
6
> SELECT ceil(3345.1, -2);
3400
> SELECT ceil(-12.345, 1);
-12.3
-- Rounding 127 to the nearest 10 produces 130, which overflows TINYINT.
> SELECT ceil(cast(127 AS TINYINT), -1);
Error: ARITHMETIC_OVERFLOW