ST_GeometryN
ST_Geometryn devuelve una geometría a la que apunta el índice de entrada de la geometría de entrada, de la siguiente manera:
Si la entrada es un punto, una linestring o un polígono, se devuelve una geometría tal cual si el índice es igual a uno (1) y null si el índice es distinto de uno (1).
Si la entrada es un multipunto, multilinestring, multipolígono o colección de geometría, se devuelve un punto, linestring, polígono o colección de geometría a la que apunta un índice de entrada.
El índice tiene base uno. El identificador del sistema de referencia espacial (SRID) del resultado es el mismo que el de la geometría de entrada. La dimensión de la geometría devuelta es la misma que la de la geometría de entrada.
Sintaxis
ST_GeometryN(geom, index)
Argumentos
- geom
-
Un valor de tipo de datos
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
. - índice
-
Un valor de tipo de datos
INTEGER
que representa la posición de un índice con base 1.
Tipo de retorno
GEOMETRY
Si geom o index es null, entonces se devuelve el valor null.
Si el índice está fuera de rango, se devuelve un error.
Ejemplos
El siguiente SQL devuelve las geometrías en una colección de geometría.
WITH tmp1(idx) AS (SELECT 1 UNION SELECT 2),
tmp2(g) AS (SELECT ST_GeomFromText('GEOMETRYCOLLECTION(POLYGON((0 0,10 0,0 10,0 0)),LINESTRING(20 10,20 0,10 0))'))
SELECT idx, ST_AsEWKT(ST_GeometryN(g, idx)) FROM tmp1, tmp2 ORDER BY idx;
idx | st_asewkt
-----+------------------------------
1 | POLYGON((0 0,10 0,0 10,0 0))
2 | LINESTRING(20 10,20 0,10 0)