Aracılığıyla paylaş


STRUCT tür

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Bir alan dizisi tarafından açıklanan yapıya sahip değerleri temsil eder.

Sözdizimi

STRUCT < [fieldName [:] fieldType [NOT NULL] [COLLATE collationName] [COMMENT str] [, …] ] >
  • fieldName: Alanı adlandıran bir tanımlayıcı. Adların benzersiz olması gerekmez.

  • fieldType: Herhangi bir veri türü.

  • NOT NULL: Belirtildiğinde, bu yapının, bu alanın değerinin hiçbir zaman NULLolmayacağını garanti ettiği durumda.

  • COLLATE collationName: bu isteğe bağlı olarak fieldTypeSTRING için kullanılacak harmanlamayı belirtir.

    Belirtilmezse harmanlama, STRUCT tanımlandığı bağlamdan devralınır:

    • bir CREATE veya ALTER içinde TABLE, VIEWveya FUNCTIONiçinde varsayılan harmanlama, bu TABLE, VIEWveya FUNCTIONöğesinin varsayılan harmanlaması ile eşleşir.
    • Üst düzey bir UPDATE bağlamında, varsayılan harmanlama , INSERT'dır.
  • COMMENT str: Alanı açıklayan isteğe bağlı bir dize sabiti.

Sınırlar

Türü, 0'a eşit veya daha büyük herhangi bir sayıda alanı destekler.

Sabitler

Sabit dizi değerlerinin nasıl üretildiğine ilişkin ayrıntılar için bkz. struct işlev ve named_struct işlev.

Örnekler

> 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