Bagikan melalui


STRUCT tipe

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mewakili nilai dengan struktur yang dijelaskan oleh urutan bidang.

Sintaks

STRUCT < [fieldName [:] fieldType [NOT NULL] [COLLATE collationName] [COMMENT str] [, …] ] >
  • fieldName: Pengidentifikasi yang digunakan untuk menamai bidang. Nama tersebut tidak harus unik.

  • fieldType: Jenis data apa pun.

  • NOT NULL: Jika ditentukan, struktur menjamin bahwa nilai bidang ini tidak pernah NULL.

  • COLLATE collationName: Ini menentukan pengurutan yang akan digunakan untuk fieldType dari STRINGsecara opsional.

    Jika tidak ditentukan, kolase diwariskan dari konteks di mana STRUCT ditentukan:

    • Dalam CREATE atau ALTER dari TABLE, VIEW atau FUNCTION, kolasi default cocok dengan kolasi default dari TABLE, VIEW, atau FUNCTION.
    • Dalam konteks tingkat atas UPDATE, HAPUS, INSERT, MERGE atau pernyataan kueri kolatasi default adalah UTF8_BINARY.
  • COMMENT str: Literal string opsional yang menggambarkan bidang.

Batas

Jenis ini mendukung sejumlah bidang yang lebih besar atau sama dengan 0.

Harfiah

Lihat fungsi struct dan fungsi named_struct untuk detail tentang cara menghasilkan nilai array harfiah.

Contoh

> 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>).name);
 SYSTEM.BUILTIN.UNICODE_CI