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 yang diubah menjadi DECIMAL dengan format fmt, atau NULL jika expr tidak sesuai dengan format tersebut.
Sintaks
try_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 di akhir. -
fmt: String literal, menentukan format yang diharapkan dariexpr.
Mengembalikan
DECIMAL(p, s) di mana p adalah jumlah total digit (0 atau 9) dan s merupakan jumlah digit setelah titik desimal, atau 0 jika tidak ada digit setelah titik desimal.
fmt dapat berisi elemen berikut (tidak peka huruf besar/kecil):
0atau9Menentukan digit yang diharapkan antara
0dan9. A0di sebelah kiri titik desimal menunjukkan bahwaexprharus memiliki setidaknya sebanyak digit. Di awal9menunjukkan bahwaexprdapat menghilangkan digit ini.exprtidak boleh lebih besar dari jumlah digit yang diizinkan di sisi kiri titik desimal.Digit di sebelah kanan desimal menunjukkan jumlah maksimum digit
exprmungkin harus di sebelah kanan titik desimal yang ditentukan olehfmt..atauDMenentukan posisi titik desimal.
exprtidak perlu menyertakan titik desimal.,atauGMenentukan posisi pemisah
,pengelompokan (ribuan). 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.PRMenentukan bahwa
exprmenetapkan angka negatif dengan tanda kurung sudut mengapit (<1>).
Jika expr berisi karakter apa pun selain 0 melalui 9, atau yang diizinkan dalam fmt, akan NULL dikembalikan.
Untuk penggunaan semantik yang ketat, gunakan to_number().
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 try_to_number('-$12,345.67', 'S$999,099.99');
-12345.67
-- Plus is optional, and so are fractional digits.
> SELECT try_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 number
-- 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 try_to_number('$045', 'S$999,099.99');
45.00
-- Using brackets to denote negative values
> SELECT try_to_number('<1234>', '999999PR');
-1234