- Catégories :
ST_POINTN¶
Renvoie un point à un index spécifié dans un LineString.
- Voir aussi :
Syntaxe¶
ST_POINTN( <geography_or_geometry_expression> , <index> )
Arguments¶
geography_or_geometry_expression
L’argument doit être une expression de type GEOGRAPHY ou GEOMETRY qui représente une LineString.
index
L’index du point à retourner. L’index doit être un nombre entier.
Un index négatif est interprété comme le décalage par rapport à la fin de la LineString. Par exemple,
-1
est interprété comme le dernier point de la LineString,-2
est interprété comme l’avant-dernier point, etc.
Renvoie¶
La fonction renvoie une valeur de type GEOGRAPHY ou GEOMETRY qui contient le Point à l’index spécifié du LineString.
Notes sur l’utilisation¶
Si
geography_or_geometry_expression
n’est pas une LineString, la fonction signale une erreur.Si
index
est hors limites (par exemple, dépasse le nombre de points dans la LineString), la fonction signale une erreur.
Exemples¶
Exemples GEOGRAPHY¶
La requête suivante renvoie le deuxième point d’une 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) |
+--------------------------------------------------------------+
La requête suivante utilise un index négatif pour retourner le deuxième point à partir de la fin d’une 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) |
+---------------------------------------------------------------+
Exemples GEOMETRY¶
La requête suivante renvoie le deuxième point d’une 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) |
+-------------------------------------------------------------+
La requête suivante utilise un index négatif pour retourner le deuxième point à partir de la fin d’une 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) |
+--------------------------------------------------------------+