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 expr diubah ke DESIMAL menggunakan format fmt.
Sintaks
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumen
-
expr: Ekspresi STRING yang mewakili angka.exprdapat mencakup spasi di awal atau akhir. -
fmt: String literal, menentukan format yang diharapkan dariexpr.
Pengembalian
DECIMAL(p, s) di mana p adalah jumlah total digit (0 atau 9) dan s adalah jumlah digit setelah titik desimal, atau 0 jika tidak ada.
fmt dapat berisi elemen berikut (tidak peka huruf besar/kecil):
0atau9Menentukan digit yang diharapkan antara
0dan9. Tanda0di sebelah kiri titik desimal menunjukkan bahwaexprharus memiliki jumlah digit yang setidaknya sama banyaknya. Di awal9menunjukkan bahwaexprdapat menghilangkan digit ini.exprtidak boleh lebih besar dari yang diizinkan oleh jumlah digit di sebelah kiri titik desimal.Digit di sebelah kanan titik desimal menunjukkan bahwa
exprmungkin memiliki lebih banyak digit di sebelah kanan titik desimal daripada yang ditentukan olehfmt..atauDMenentukan posisi titik desimal.
exprtidak perlu menyertakan titik desimal.,atauGMenentukan posisi pengelompokan (ribuan) pemisah
,. Harus ada0atau9di sebelah kiri dan kanan setiap pemisah pengelompokan.exprharus cocok dengan pemisah pengelompokan yang relevan dengan ukuran angka.Latau$Menentukan lokasi
$tanda mata uang. Karakter ini hanya dapat ditentukan sekali.SatauMIMenentukan posisi tanda '+' atau '-' opsional untuk
S, dan '-' hanya untukMI. Arahan ini hanya dapat ditentukan sekali.PRHanya diizinkan di akhir string format; menentukan bahwa
exprmenunjukkan angka negatif dengan tanda kurung sudut meliputi (<1>).
Jika expr berisi karakter selain 0 melalui 9, atau karakter yang diizinkan dalam fmt, Azure Databricks menimbulkan kesalahan INVALID_FORMAT.
Untuk mengembalikan NULL alih-alih kesalahan untuk expr yang tidak valid, gunakan try_to_number().
Kondisi kesalahan umum
Contoh
-- The format expects:
-- * an optional sign at the beginning,
-- * followed by a dollar sign,
-- * followed by a number between 3 and 6 digits long,
-- * thousands separators,
-- * up to two dight beyond the decimal point.
> SELECT to_number('-$12,345.67', 'S$999,099.99');
-12345.67
-- Plus is optional, and so are fractional digits.
> SELECT to_number('$345', 'S$999,099.99');
345.00
-- The format requires at least three digits.
> SELECT to_number('$45', 'S$999,099.99');
Error: INVALID_FORMAT.MISMATCH_INPUT
-- The format requires at least three digits.
> SELECT try_to_number('$45', 'S$999,099.99');
NULL
-- The format requires at least three digits
> SELECT to_number('$045', 'S$999,099.99');
45.00
-- Using brackets to denote negative values
> SELECT to_number('<1234>', '999999PR');
-1234