ST_POINTN

ST_POINTN

LineString의 지정된 인덱스에 있는 Point를 반환해요.

참고 항목:

  • ST_ENDPOINT, ST_STARTPOINT

출처: Snowflake SQL Reference - ST_POINTN

본문

구문

ST_POINTN( <geography_or_geometry_expression> , <index> )

인자

geography_or_geometry_expression

  • 인자는 LineString을 나타내는 GEOGRAPHY 또는 GEOMETRY 타입의 표현식이어야 해요.

index

  • 반환할 Point의 인덱스예요. 인덱스는 정수여야 해요. 음수 인덱스는 LineString 끝에서의 오프셋으로 해석돼요. 예를 들어 -1은 LineString의 마지막 Point로, -2는 끝에서 두 번째 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)                                                   |
+--------------------------------------------------------------+

다음 쿼리는 음수 인덱스를 사용해 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)                                                    |
+---------------------------------------------------------------+

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

다음 쿼리는 음수 인덱스를 사용해 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)                                                   |
+--------------------------------------------------------------+

더 알아보기