Freigeben über


STRUCT -Typ

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

Stellt Werte mit der Struktur dar, die von einer Sequenz von Feldern beschrieben wird.

Syntax

STRUCT < [fieldName [:] fieldType [NOT NULL] [COLLATE collationName] [COMMENT str] [, …] ] >
  • fieldName: Ein Bezeichner, der das Feld benennt. Die Namen müssen eindeutig sein.

  • fieldType: Beliebiger Datentyp.

  • NOT NULL: Wenn angegeben, garantiert die Struktur, dass der Wert dieses Felds niemals NULList.

  • COLLATE collationName: Dies gibt optional die Sortierung an, die für eine fieldType von STRING verwendet werden soll.

    Wenn nicht angegeben, wird die Sortierung vom Kontext übernommen, in dem die STRUCT definiert ist.

    • Innerhalb eines CREATE oder eines ALTER bei einem TABLE, VIEW oder FUNCTION entspricht die Standardsortierung der Standardsortierung des betreffenden TABLE, VIEW oder FUNCTION.
    • Im Kontext einer obersten Ebene UPDATE, DELETE, INSERT, MERGE oder Abfrage-Anweisung ist UTF8_BINARY die Standardsortierung.
  • COMMENT str: Ein optionales Zeichenfolgenliteral, das das Feld beschreibt.

Grenzwerte

Der Typ unterstützt eine beliebige Anzahl von Feldern größer oder gleich 0.

Literale

Ausführliche Informationen zur Erzeugung von Literal-Array-Werten finden Sie unter struct Funktion und named_struct Funktion.

Beispiele

> SELECT struct('Spark', 5);
  {Spark, 5}

> SELECT typeof(named_struct('Field1', 'Spark', 'Field2', 5));
  struct<Field1:string,Field2:int>

> SELECT typeof(struct('Spark', 5));
  struct<col1:string,col2:int>

> SELECT typeof(CAST(NULL AS STRUCT<Field1:INT NOT NULL COMMENT 'The first field.',Field2:ARRAY<INT>>));
  struct<Field1:int,Field2:array<int>>

> SELECT collation(cast(struct('hello')) AS STRUCT<name STRING COLLATE UNICODE_CI>)
 UNICODE_CI