定義
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 を使用して、マルチポリゴンの 2 番目のエレメントをリストします。
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))