카테고리:

지리 공간 함수

ST_POINTN

LineString의 지정된 인덱스에 있는 점을 반환합니다.

참고 항목:

ST_ENDPOINT , ST_STARTPOINT

구문

ST_POINTN( <geography_or_geometry_expression> , <index> )
Copy

인자

geography_or_geometry_expression

인자는 LineString을 나타내는 GEOGRAPHY 또는 GEOMETRY 형식의 식이어야 합니다.

index

반환할 Point의 인덱스입니다. 인덱스는 정수여야 합니다.

음의 인덱스는 LineString의 끝에서 오프셋으로 해석됩니다. 예를 들어 -1 은 LineString의 마지막 Point로 해석되고 -2 는 마지막 Point에서 두 번째 Point로 해석되는 식입니다.

반환

이 함수는 LineString의 지정된 인덱스에 Point를 포함하는 GEOGRAPHY 또는 GEOMETRY 형식의 값을 반환합니다.

사용법 노트

  • geography_or_geometry_expression 이 LineString이 아닌 경우 이 함수는 오류를 보고합니다.

  • index 가 범위를 벗어나는 경우(예: LineString의 Point 수를 초과하는 경우) 함수에서는 오류를 보고합니다.

GEOGRAPHY 예

다음 쿼리는 LineString의 두 번째 Point를 반환합니다.

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)                                                   |
+--------------------------------------------------------------+
Copy

다음 쿼리는 음의 인덱스를 사용하여 LineString의 끝에서 두 번째 Point를 반환합니다.

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)                                                    |
+---------------------------------------------------------------+
Copy

GEOMETRY 예

다음 쿼리는 LineString의 두 번째 Point를 반환합니다.

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)                                                  |
+-------------------------------------------------------------+
Copy

다음 쿼리는 음의 인덱스를 사용하여 LineString의 끝에서 두 번째 Point를 반환합니다.

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)                                                   |
+--------------------------------------------------------------+
Copy