Freigeben über


inline_outer-Tabellenwert-Generator-Funktion

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Explodiert ein Array von Strukturen in eine Tabelle mit OUTER-Semantik.

Syntax

inline_outer(expr)

Argumente

  • expr: Ein ARRAY < STRUCT >-Ausdruck.

Ein Satz von Zeilen, der aus den Feldern in den Strukturelementen des Arrays expr besteht. Die von inline generierten Spalten sind die Namen der Felder.

Wenn exprNULL ist, wird eine einzelne Zeile mit NULLEN für jede Spalte erzeugt.

  • Gilt für: Häkchen gesetzt ja Databricks Runtime 12.1 und früher:

    inline_outer kann nur in der SELECT-Liste als Stamm eines Ausdrucks oder nach einer LATERAL VIEW-Klausel platziert werden. Beim Platzieren der Funktion in der SELECT-Liste darf keine andere Generatorfunktion in derselben SELECT-Liste oder vorhanden sein, da ansonsten die Fehlermeldung UNSUPPORTED_GENERATOR.MULTI_GENERATOR ausgelöst wird.

  • Gilt für: Häkchen ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 12.2 LTS und höher:

    Der Aufruf der LATERAL VIEW-Klausel oder der SELECT-Liste ist veraltet. Rufen Sie stattdessen inline_outer als table_reference auf.

Beispiele

Gilt für: Häkchen gesetzt ja Databricks Runtime 12.1 und früher:

> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL

> SELECT inline_outer(array(struct(1, 'a'), struct(1, 'b'))),
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))),
         'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR

Gilt für: Häkchen ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 12.2 LTS und höher:

> SELECT i.*, 'Spark SQL'
    FROM inline_outer(array(struct(1, 'a'), struct(2, 'b'))) AS i;
 1  a Spark SQL
 2  b Spark SQL

> SELECT i1.*, i2.*, 'Spark SQL'
   FROM  inline_outer(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
 1      a       c       1.0     Spark SQL
 1      b       c       1.0     Spark SQL
 1      a       d       2.0     Spark SQL
 1      b       d       2.0     Spark SQL