Définition
ST_GeometryN accepte un ensemble et un index entier et retourne l'énième objet ST_Geometry de l'ensemble.
Syntaxe
Oracle et 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)
Type de retour
Oracle et PostgreSQL
ST_Geometry
SQLite
Geometryblob
Exemple
Dans cet exemple, un objet multipolygon est créé. Ensuite, la fonction ST_GeometryN est utilisée pour répertorier le deuxième élément de l'objet multipolygon.
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))