conv
وظيفه
ينطبق على: Databricks SQL Databricks Runtime
num
تحويل من fromBase
إلى toBase
.
بناء الجملة
conv(num, fromBase, toBase)
الوسيطات
num
STRING
: تعبير يعبر عن رقم فيfromBase
.fromBase
INTEGER
: تعبير يشير إلى قاعدة المصدر.toBase
: تعبيرINTEGER
يشير إلى القاعدة الهدف.
المرتجعات
STRING
.
تدعم الدالة الأساس 2 إلى الأساس 36.
يمثل الرقم 'A' (أو 'a') الرقم العشري 10 ويمثل 'Z' (أو 'z') الرقم العشري 35.
يمتد نطاق القيم المدعومة إلى BIGINT
نطاق .
إذا كان fromBase
أقل من 2 أو toBase
-1 أو 0 أو 1، فإن النتيجة هي NULL
.
إذا كان toBase
سالبا num
، يتم تفسيره على أنه رقم موقع، وإلا فإنه يتم التعامل معه على أنه رقم غير موقع.
إذا كان num
Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق خارج النطاق يثير ARITHMETIC_OVERFLOW.
تحذير
في Databricks Runtime إذا كان spark.sql.ansi.enabled هو false
، فإن التجاوز لا يسبب خطأ ولكنه "يلتف" النتيجة بدلا من ذلك.
الأمثلة
> SELECT conv('100', 2, 10);
4
> SELECT conv('-10', 16, 10);
18446744073709551600
> SELECT conv('-10', 16, -10);
-16
> SELECT conv('-1', 10, 10);
18446744073709551615
> SELECT conv('FFFFFFFFFFFFFFFFF', 16, 10);
Error: ARITHMETIC_OVERFLOW
> SELECT conv('FFFFFFFFFFFFFFFF', 16, 10);
18446744073709551615
> SELECT conv('FFFFFFFFFFFFFFFF', 16, -10);
-1