ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: Databricks SQL
Databricks Runtime 14.1 وما فوق
تعديل قيمة متغير مؤقت واحد أو أكثر.
لتعيين معلمة تكوين، استخدم SET.
SET { VAR | VARIABLE } { variable_name = { expression | DEFAULT } } [, ...]
SET { VAR | VARIABLE } ( variable_name [, ...] ) = ( query ) }
-
تحديد اسم متغير مؤقت.
إذا تعذر العثور على المتغير، فإن Azure Databricks يثير خطأ UNRESOLVED_VARIABLE .
إذا قمت بتحديد متغيرات مكررة، فإن Azure Databricks يثير خطأ DUPLICATE_ASSIGNMENTS .
-
أي تعبير جيد التكوين يحسب قيمة المتغير الجديد.
افتراضي
استخدم التعبير الافتراضي للمتغير أو
NULL
إذا لم يتم تحديد أي شيء لحساب قيمة المتغير الجديد.-
أي استعلام جيد التكوين مع القيود التالية:
- يرجع الاستعلام صفا واحدا على الأكثر (ROW_SUBQUERY_TOO_MANY_ROWS).
- يتطابق عدد الأعمدة التي تم إرجاعها بواسطة الاستعلام مع عدد أسماء المتغيرات المحددة (ASSIGNMENT_ARITY_MISMATCH).
- يمكن تحويل كل عمود تم إرجاعه إلى متغير في موضع المطابقة (CAST_INVALID_INPUT).
إذا لم يرجع الاستعلام أية صفوف يقوم Azure Databricks بتعيين كافة المتغيرات المحددة إلى
NULL
.يمكنك استخدام
DEFAULT
الكلمة الأساسية بدلا من تعبير قائمة تحديد لتعيين متغير إلى الافتراضي الخاص به.
> DECLARE VARIABLE myvar1 INT DEFAULT 7;
> DECLARE VARIABLE myvar2 STRING DEFAULT ‘hello’;
-- Set a SQL variable to a value
> SET VAR myvar1 = 5;
> VALUES (myvar1);
5
-- Set a SQL variable back to DEFAULT
> SET VARIABLE myvar1 = DEFAULT;
> VALUES (myvar1);
7
-- Set a SQL variable to the result of a scalar subquery.
> SET VARIABLE myvar1 = (SELECT max(c1) FROM VALUES(1), (2) AS T(c1));
> VALUES (myvar1);
2
-- Set multiple variables from a query
> SET VAR (myvar1, myvar2) = (VALUES(10, 'world'));
> VALUES (myvar1, myvar2);
10 world
-- Set multiple variables from expressions
> SET VAR myvar1 = 11, myvar2 = 'hello';
> VALUES (myvar1, myvar2);
11 hello
-- Set multiple variables based on a query
> SET VARIABLE (myvar1, myvar2)
= (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS T(c1));
> VALUES (myvar1, myvar2);
2 1
-- Assign NULLs on empty query
> SET VAR (myvar1, myvar2)
= (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS T(c1) HAVING max(c1) = 0);
> VALUES (myvar1, myvar2);
NULL NULL
-- Using a variable with an IDENTIFIER clause
> DECLARE colname STRING;
> SET VAR colname = 'c1';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
1
> SET VARIABLE colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
2
-- Variable defaults are recomputed
> DECLARE VARIABLE val DEFAULT RAND();
> SELECT val;
0.1234...
> SET VARIABLE val = DEFAULT;
> SELECT val;
0.9876...