st_collect-Funktion

Gilt für:check marked yes Databricks Runtime 18.3 und höher

Important

Dieses Feature befindet sich in der Public Preview.

Sammelt ein Array von GEOGRAPHY oder Werten in einer einzelnen Multipoint-, Multilinestring-, Multipolygon- oder GEOMETRY Geometrieauflistung.

Syntax

st_collect ( geoArray )

Arguments

  • geoArray: Ein Array von GEOGRAPHY Werten oder ein Array von GEOMETRY Werten.

Rückkehr

Ein Wert vom Typ GEOGRAPHY oder GEOMETRY, der eine Multipoint-, Multilinestring-, Multipolygon- oder Geometrieauflistung darstellt.

Alle NULL Werte im Eingabearray werden ignoriert. Der Typ der Ausgabe hängt von den Typen der NichteingabegeometrienNULL ab:

  • Wenn alle Nicht-ElementeNULL Punkte sind, wird ein Multipoint zurückgegeben.
  • Wenn alle Nicht-ElementeNULL Linienzeichenfolgen sind, wird eine mehrzeilige Zeichenfolge zurückgegeben.
  • Wenn alle Nicht-ElementeNULL Polygone sind, wird ein Multipolygon zurückgegeben.
  • Andernfalls wird eine Geometrieauflistung zurückgegeben.

Jede Ausgabe enthält ein Element pro ArrayelementNULL .

Eingaben mit mehreren Typen (Multipoint, Multilinestring, Multipolygon) und Geometriesammlungseingaben werden als Elemente der resultierenden Geometriesammlung beibehalten; sie werden nicht abgeflacht.

Der SRID-Wert der Ausgabe ist der gemeinsame SRID-Wert der NichteingabegeometrienNULL .

Die Dimension der Ausgabe ist die maximale gemeinsame Dimension der NichteingabegeometrienNULL .

Wenn das Eingabearray leer ist oder nur NULL Werte enthält, wird die leere 2D-Geometrieauflistung zurückgegeben. In diesem Fall wird die SRID der Ausgabe wie folgt bestimmt:

  • Wenn der Elementtyp des Eingabearrays lautet, lautet GEOGRAPHY(ANY)4326die SRID der Ausgabe .
  • Wenn der Elementtyp des Eingabearrays lautet, lautet GEOMETRY(ANY)0die SRID der Ausgabe .
  • Andernfalls entspricht die SRID der Ausgabe dem Elementtyp des Eingabearrays.

Die Funktion gibt zurück NULL , wenn die Eingabe lautet NULL.

Fehlerbedingungen

  • Wenn zwei Nichteingabegeometrien unterschiedliche SRID-WerteNULL aufweisen, gibt die Funktion ST_DIFFERENT_SRID_VALUES zurück.

Beispiele

-- Collects an array of points into a multipoint.
> SELECT st_astext(st_collect(array(st_geomfromtext('POINT(1 2)'),st_geomfromtext('POINT(3 4)'))));
  MULTIPOINT((1 2),(3 4))
-- Collects an array of polygons into a multipolygon.
> SELECT st_astext(st_collect(array(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))'))));
  MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))
-- Collects an array of mixed geometry kinds into a geometry collection.
> SELECT st_astext(st_collect(array(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))'),st_geomfromtext('LINESTRING(1 2,3 4)'))));
  GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0)),LINESTRING(1 2,3 4))
-- Returns the 2D empty geometry collection for an empty input array.
> SELECT st_astext(st_collect(array()));
  GEOMETRYCOLLECTION EMPTY
-- Returns NULL for a NULL input.
> SELECT st_collect(NULL);
  NULL