تعريف المتغير

ينطبق على:check marked yes Databricks Runtime 14.1 وما فوق

إنشاء متغير خاص مؤقت لجلسة العمل يمكنك الرجوع إليه أينما يمكن استخدام تعبير ثابت. يمكنك أيضا استخدام المتغيرات بالاشتراك مع عبارة IDENTIFIER لتحديد معلمات المعرفات في عبارات SQL.

يتم تعديل المتغيرات باستخدام عبارة SET VARIABLE .

لا يمكن الرجوع إلى المتغيرات المؤقتة ضمن:

  • قيد فحص،
  • عمود تم إنشاؤه،
  • تعبير افتراضي،
  • نص SQL UDF المستمر،
  • نص طريقة عرض مستمرة.

تسمى المتغيرات المؤقتة أيضا متغيرات الجلسة .

بناء الجملة

DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name
    [ data_type ] [ { DEFEAULT | = } default_expression ]

المعلمات

  • أو استبدال

    إذا تم تحديده، يتم استبدال المتغير بنفس الاسم.

  • variable_name

    اسم للمتغير. قد يكون الاسم مؤهلا باستخدام session أو system.session. ما لم OR REPLACE يتم تحديد، يجب أن يكون الاسم فريدا داخل جلسة العمل.

  • data_type

    أي نوع بيانات معتمد. إذا 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