Определение
Функция ST_GeometryN принимает совокупность и цельночисленный индекс и возвращает n-й объект ST_Geometry в совокупности.
Синтаксис
Oracle и PostgreSQL
sde.st_geometryn (mpt1 sde.st_multipoint, index integer) sde.st_geometryn (mln1 sde.st_multilinestring, index integer) sde.st_geometryn (mpl1 sde.st_multipolygon, index integer)
SQLite
st_geometryn (mpt1 st_multipoint, index integer) st_geometryn (mln1 st_multilinestring, index integer) st_geometryn (mpl1 st_multipolygon, index integer)
Тип возврата
Oracle и PostgreSQL
ST_Geometry
SQLite
Geometryblob
Пример:
В этом примере создается мультиполигон. Затем используется функция ST_GeometryN для получения второго элемента мультиполигона.
Oracle
CREATE TABLE districts (
 dist_id integer,
 shape sde.st_multipolygon
);
INSERT INTO DISTRICTS (dist_id, shape) VALUES (
 1,
 sde.st_multipolygon ('multipolygon (((-1 -1, -1 11, 11 11, 11 -1, -1 -1),
(19 -1, 19 11, 29 9, 31 -1, 19 -1), (39 -1, 39 11, 51 11, 51 -1, 39 -1)))', 4326)
);
SELECT sde.st_astext (sde.st_geometryn (shape, 2)) Second_Element
 FROM DISTRICTS;
Second_Element
POLYGON  ((-1.00000000 -1.00000000, 11.00000000 -1.00000000, 11.0000000 0 11.000
PostgreSQL
CREATE TABLE districts (
 dist_id serial,
 shape sde.st_geometry
);
INSERT INTO districts (shape) VALUES (
 sde.st_multipolygon ('multipolygon (((-1 -1, -1 11, 11 11, 11 -1, -1 -1),
(19 -1, 19 11, 29 9, 31 -1, 19 -1), (39 -1, 39 11, 51 11, 51 -1, 39 -1)))', 4326)
);
SELECT sde.st_astext (sde.st_geometryn (shape, 2)) AS Second_Element
 FROM districts;
second_element
POLYGON  ((39 -1, 51 -1, 51 11, 39 11, 39 -1))
SQLite
CREATE TABLE districts (
 dist_id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
 NULL,
 'districts',
 'shape',
 4326,
 'multipolygon',
 'xy',
 'null'
);
INSERT INTO districts (shape) VALUES (
 st_multipolygon ('multipolygon (((-1 -1, -1 11, 11 11, 11 -1, -1 -1),
(19 -1, 19 11, 29 9, 31 -1, 19 -1), (39 -1, 39 11, 51 11, 51 -1, 39 -1)))', 4326)
);
SELECT st_astext (st_geometryn (shape, 2))
 AS "Second_Element"
 FROM districts;
Second_Element
POLYGON  ((39.00000000 -1.00000000, 51.00000000 -1.00000000, 51.00000000 11.00000000, 39.00000000 11.00000000, 39.00000000 -1.00000000))