إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime 11.3 LTS وما فوق
إرجاع expr التحويل إلى DECIMAL باستخدام التنسيق fmt.
بناء الجملة
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
الوسيطات
expr: تعبير STRING يمثل رقما.exprقد تتضمن مسافات بادئة أو لاحقة.fmt: قيمة سلسلة حرفية، تحدد التنسيق المتوقع لexpr.
المرتجعات
DECIMAL(p, s) حيث p هو إجمالي عدد الأرقام (0 أو 9) وهو s عدد الأرقام بعد الفاصلة العشرية أو 0 إذا لم يكن هناك أي رقم.
fmt يمكن أن يحتوي على العناصر التالية (غير حساس لحالة الأحرف):
0أو9تحديد رقم متوقع بين
0و9.0يشير إلى يسار النقاط العشرية إلى أنه يجب أنexprيحتوي على عدد من الأرقام على الأقل. يشير البادئة9إلى أنهexprقد يحذف هذه الأرقام.exprيجب ألا يكون أكبر مما يسمح به عدد الأرقام الموجودة على يسار الفاصلة العشرية.تشير الأرقام الموجودة إلى يمين الفاصلة العشرية إلى أن معظم الأرقام قد تكون إلى يمين الفاصلة العشرية من
fmtالأرقامexprالمحددة..أوDتحديد موضع الفاصلة العشرية.
exprلا يحتاج إلى تضمين فاصلة عشرية.,أوGتحديد موضع
,فاصل التجميع (الآلاف). يجب أن يكون0هناك أو9إلى اليسار واليمين لكل فاصل تجميع.exprيجب أن يتطابق مع فاصل التجميع ذي الصلة بحجم الرقم.Lأو$تحديد موقع علامة العملة
$. يمكن تحديد هذا الحرف مرة واحدة فقط.SأوMIيحدد موضع علامة '+' أو '-' الاختيارية ل
S، و'-' فقط لMI. يمكن تحديد هذا التوجيه مرة واحدة فقط.PRمسموح به فقط في نهاية سلسلة التنسيق؛ يحدد هذا الرقم الذي
exprيشير إلى رقم سالب مع أقواس ملتفة بزاوية (<1>).
إذا كان expr يحتوي على أي أحرف أخرى غير 0 من خلال 9، أو الأحرف المسموح بها في fmt، يتم إرجاع خطأ.
للإرجاع NULL بدلا من خطأ للاستخدام غير الصالح expr try_to_number().
الأمثلة
-- 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