st_collect 函數

適用於:勾選已標記為 Databricks 執行時間 18 LTS 及以上

Note

Databricks Runtime 18 比 Databricks Runtime 18.0、18.1 和 18.2 更新。 原本會以後期編號版本推出的功能,現在改為以 Databricks Runtime 18 的更新形式提供。 詳情請參見 關於統一發布說明。

Important

地理值的支援目前已 在公開預覽階段。 一般可支援幾何值。

將 GEOGRAPHY 或 GEOMETRY 的數值陣列收集成單一多點、多線條、多邊形或幾何集合。

Syntax

st_collect ( geoArray )

論點

  • geoArray:一個值陣列 GEOGRAPHY ,或一個值陣 GEOMETRY 列。

Returns

一個型別 GEOGRAPHY 為 的 GEOMETRY值,代表多點、多線條、多邊形或幾何集合。

NULL會忽略輸入陣列中的任何值。 輸出的類型取決於非NULL 輸入幾何的類型:

  • 若所有非NULL 元素皆為點,則返回多點。
  • 如果所有非NULL 元素都是線條,則回傳多行字串。
  • 若所有非NULL 元素皆為多邊形,則返回多邊形。
  • 否則,會回傳一個幾何集合。

每個輸出包含一個非NULL 陣列元素。

多型輸入(多點、多線字串、多多邊形)及幾何集合輸入會作為所得幾何集合的元素被保留;它們並未被壓扁。

輸出的 SRID 值是非NULL 輸入幾何的共用 SRID 值。

輸出的維度是非NULL 輸入幾何體的最大公維度。

若輸入陣列為空或僅 NULL 包含數值,則會回傳 2D 空幾何集合。 此時,輸出的 SRID 可確定如下:

  • 若輸入陣列的元素類型為 GEOGRAPHY(ANY),則輸出的 SRID 為 4326。
  • 若輸入陣列的元素類型為 GEOMETRY(ANY),則輸出的 SRID 為 0。
  • 否則,輸出的 SRID 即為輸入陣列元素類型的 SRID。

如果輸入為 NULL,則函式會傳NULL回 。

錯誤條件

Examples

-- 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