ST_PointN は linestring と整数インデックスを引き数とし、折れ線のパスにある n 番目の頂点であるポイントを戻します。
構文
db2gse.ST_PointN(l db2gse.ST_Curve, n Integer)
戻りタイプ
db2gse.ST_Point
例
以下の CREATE TABLE ステートメントによって POINTN_TEST 表が作成されます。この表には、それぞれの行を一意的に識別する GID 列と LN1 折れ線列の 2 つの列があります。
CREATE TABLE POINTN_TEST (gid integer, ln1 db2gse.ST_LineString)
以下の INSERT ステートメントによって 2 つの折れ線値が挿入されます。最初の折れ線には Z 座標や測定値がありませんが、2 番目の折れ線にはどちらもあります。
INSERT INTO POINTN_TEST VALUES(1, db2gse.ST_LineFromText('linestring (10.02 20.01,23.73 21.92,30.10 40.23)', db2gse.coordref()..srid(0))) INSERT INTO POINTN_TEST VALUES(2, db2gse.ST_LineFromText('linestring zm (10.02 20.01 5.0 7.0,23.73 21.92 6.5 7.1, 30.10 40.23 6.9 7.2)', db2gse.coordref()..srid(0)))
以下の SELECT ステートメントおよび対応する結果セットによって、 GID 列と、それぞれの折れ線の 2 番目の頂点がリストされます。最初の行の結果は Z 座標や測定値のないポイントであり、 2 番目の行の結果は Z 座標と測定値のあるポイントです。ソースの折れ線内に Z 座標や測定値が存在する場合、 ST_PointN 関数はポイントとともに Z 座標または測定値を戻します。
SELECT gid, CAST(db2gse.ST_AsText(db2gse.ST_PointN(ln1,2)) AS varchar(60)) "The 2nd vertice" FROM POINTN_TEST GID The 2nd vertice ----------- ------------------------------------------------------------ 1 POINT ( 23.73000000 21.92000000) 2 POINT ZM ( 23.73000000 21.92000000 7.00000000 7.10000000) 2 record(s) selected.