ST_POINTN
ST_POINTN
LineString의 지정된 인덱스에 있는 Point를 반환해요.
참고 항목:
- ST_ENDPOINT, ST_STARTPOINT
본문
구문
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) |
+--------------------------------------------------------------+
더 알아보기
- ST_STARTPOINT — LineString의 첫 번째 Point 반환
- ST_ENDPOINT — LineString의 마지막 Point 반환
- Snowflake 지리공간 함수