- カテゴリ:
ST_POINTN¶
LineString 内の指定されたインデックスにあるポイントを返します。
- こちらもご参照ください。
構文¶
ST_POINTN( <geography_or_geometry_expression> , <index> )
引数¶
geography_or_geometry_expression
引数は、 LineString を表す型 GEOGRAPHY または GEOMETRY の式にする必要があります。
index
返すポイントのインデックス。インデックスは整数でなければなりません。
負のインデックスは、 LineString の末尾からのオフセットとして解釈されます。たとえば、
-1
は LineString の最後のポイントとして解釈され、-2
は最後から2番目のポイントとして解釈されます。
戻り値¶
この関数は、 LineString の指定されたインデックスにあるポイントを含む型 GEOGRAPHY または GEOMETRY の値を返します。
使用上の注意¶
geography_or_geometry_expression
が LineString ではない場合、関数はエラーを報告します。index
が範囲外の場合(例: LineString のポイント数を超えている場合)、関数はエラーを報告します。
例¶
GEOGRAPHY 例¶
次のクエリは、 LineString の2番目のポイントを返します。
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 の末尾から2番目のポイントを返します。
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 の2番目のポイントを返します。
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 の末尾から2番目のポイントを返します。
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) |
+--------------------------------------------------------------+