- Categorias:
ST_POINTN¶
Retorna um ponto em um índice especificado em um LineString.
- Consulte também:
Sintaxe¶
ST_POINTN( <geography_or_geometry_expression> , <index> )
Argumentos¶
geography_or_geometry_expression
O argumento deve ser uma expressão do tipo GEOGRAPHY ou GEOMETRY representando um LineString.
index
O índice do ponto a retornar. O índice deve ser um número inteiro.
Um índice negativo é interpretado como o deslocamento a partir do final do LineString. Por exemplo,
-1
é interpretado como o último ponto do LineString,-2
é interpretado como o penúltimo ponto, etc.
Retornos¶
A função retorna um valor do tipo GEOGRAPHY ou GEOMETRY que contém o ponto no índice especificado do LineString.
Notas de uso¶
Se
geography_or_geometry_expression
não for um LineString, a função reportará um erro.Se
index
estiver fora dos limites (por exemplo, se exceder o número de pontos no LineString), a função reportará um erro.
Exemplos¶
Exemplos GEOGRAPHY¶
A consulta a seguir retorna o segundo ponto em um LineString:
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2);
+--------------------------------------------------------------+
| ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2) |
|--------------------------------------------------------------|
| POINT(2 2) |
+--------------------------------------------------------------+
A consulta a seguir usa um índice negativo para retornar o segundo ponto a partir do final de um LineString:
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2);
+---------------------------------------------------------------+
| ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2) |
|---------------------------------------------------------------|
| POINT(3 3) |
+---------------------------------------------------------------+
Exemplos GEOMETRY¶
A consulta a seguir retorna o segundo ponto em um LineString:
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2);
+-------------------------------------------------------------+
| ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2) |
|-------------------------------------------------------------|
| POINT(2 2) |
+-------------------------------------------------------------+
A consulta a seguir usa um índice negativo para retornar o segundo ponto a partir do final de um LineString:
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2);
+--------------------------------------------------------------+
| ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2) |
|--------------------------------------------------------------|
| POINT(3 3) |
+--------------------------------------------------------------+