stack دالة منشئ قيم الجدول

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime

يفصل expr1، ...، exprN إلى numRows صفوف.

بناء الجملة

stack(numRows, expr1 [, ...] )

الوسيطات

  • numRows: قيمة حرفية INTEGER أكبر من 0 تحدد عدد الصفوف المنتجة.
  • exprN: تعبير من أي نوع. يجب أن يتطابق نوع أي exprN نوع من expr(N+numRows)أنواع .

المرتجعات

مجموعة من numRows الصفوف التي تتضمن max(1, (N/numRows)) أعمدة تنتجها هذه الدالة. يتم إضافة صف غير مكتمل ب NULLs.

بشكل افتراضي، تسمى col0, … col(n-1)الأعمدة المنتجة .

stack يعادل VALUES عبارة .

  • ينطبق على:وضع علامة Databricks Runtime 12.1 والإصدارات السابقة:

    stack يمكن وضعها فقط في SELECT القائمة كجذر لتعبير أو اتباع طريقة عرض LATERAL. عند وضع الدالة في SELECT القائمة، يجب ألا تكون هناك دالة مولد أخرى في نفس SELECT القائمة أو UNSUPPORTED_GENERATOR. يتم رفع MULTI_GENERATOR.

  • ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق:

    يتم إهمال الاستدعاء من عبارة LATERAL VIEW أو SELECT القائمة. بدلا من ذلك، استدع stack ك table_reference.

الأمثلة

ينطبق على:وضع علامة Databricks Runtime 12.1 والإصدارات السابقة:

> SELECT 'hello', stack(2, 1, 2, 3) AS (first, second), 'world';
 hello 1  2    world
 hello 3  NULL world

> SELECT 'hello', stack(2, 1, 2, 3) AS (first, second), stack(2, 'a', 'b') AS (third) 'world';
 Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR

-- Equivalent usage of VALUES
> SELECT 'hello', s1.*, s2.*, 'world'
    FROM VALUES(1, 2), (3, NULL) AS s1(first, second),
         VALUES('a'), ('b') AS s2(third);
 hello  1   2       a   world
 hello  3   NULL    a   world
 hello  1   2       b   world
 hello  3   NULL    b   world

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق:

> SELECT 'hello', s.*, 'world'
    FROM stack(2, 1, 2, 3) AS s(first, second);
 hello 1  2    world
 hello 3  NULL world

> SELECT 'hello', s1.*, s2.*, 'world'
    FROM stack(2, 1, 2, 3) AS s1(first, second),
         stack(2, 'a', 'b') AS s2(third);
  hello 1  2    a  world
  hello 3  NULL a  world
  hello 1  2    b  world
  hello 3  NULL b  world