تعريف المتغير
ينطبق على: Databricks SQL Databricks Runtime 14.1 وما فوق
إنشاء متغير خاص مؤقت لجلسة العمل يمكنك الرجوع إليه أينما يمكن استخدام تعبير ثابت. يمكنك أيضا استخدام المتغيرات بالاشتراك مع عبارة IDENTIFIER لتحديد معلمات المعرفات في عبارات SQL.
يتم تعديل المتغيرات باستخدام عبارة SET VARIABLE .
لا يمكن الرجوع إلى المتغيرات المؤقتة ضمن:
- قيد فحص
- عمود تم إنشاؤه
- تعبير افتراضي
- نص SQL UDF المستمر
- نص طريقة عرض مستمرة
تسمى المتغيرات المؤقتة أيضا متغيرات الجلسة .
بناء الجملة
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name
[ data_type ] [ { DEFAULT | = } default_expression ]
المعلمات
أو استبدال
إذا تم تحديده، يتم استبدال المتغير بنفس الاسم.
-
اسم للمتغير. قد يكون الاسم مؤهلا باستخدام
session
أوsystem.session
. ما لمOR REPLACE
يتم تحديد، يجب أن يكون الاسم فريدا داخل جلسة العمل. -
أي نوع بيانات معتمد. إذا
data_type
تم حذفه، يجب تحديدDEFAULT
، ويتم اشتقاق النوع منdefault_expression
. default_expression أو= default_expression الافتراضي
تعريف القيمة الأولية للمتغير بعد الإنشاء.
default_expressio
يجب أن تكون n قابلة للصب إلىdata_type
. إذا لم يتم تحديد أي افتراضي، تتم تهيئة المتغير باستخدامNULL
.إذا كان التعبير يتضمن استعلام فرعي فإن Azure Databricks يرفع INVALID_DEFAULT_VALUE. خطأ SUBQUERY_EXPRESSION.
الأمثلة
-- Create a variable with a default
> DECLARE VARIABLE myvar INT DEFAULT 5;
> VALUES (myvar);
5
-- Setting a variable
> SET VAR myvar = (SELECT sum(c1) FROM VALUES(1), (2) AS T(c1);
> VALUES (myvar);
3
-- Variables are the outermost scope.
> SELECT myvar, t.myvar, session.myvar FROM VALUES(1) AS T(myvar);
1 1 3
> DROP TEMPORARY VARIABLE myvar;
-- A minimalist variable declaration
> DECLARE myvar = 5;
> VALUES (myvar);
5
-- 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 VAR colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
2