ST_PointN verwendet eine Linienfolge und einen ganzzahligen Index und gibt einen Punkt zurück, der den n-ten Scheitelpunkt im Verlauf der Linienfolge darstellt.
Syntax
db2gse.ST_PointN(l db2gse.ST_Curve, n Integer)
Rückgabetyp
db2gse.ST_Point
Beispiele
Die folgende Anweisung CREATE TABLE erstellt die Tabelle POINTN_TEST mit zwei Spalten: der Spalte GID, die jede Zeile eindeutig kennzeichnet, und der Linienspalte LN1.
CREATE TABLE POINTN_TEST (gid integer, ln1 db2gse.ST_LineString)
Die folgenden INSERT-Anweisungen fügen zwei Linienwerte ein. Die erste Zeile hat keine Z-Koordinaten oder Maßangaben; die zweite dagegen schon.
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)))
Die folgende Anweisung SELECT und die entsprechende Ergebnisgruppe listet die Spalte GID und den zweiten Scheitelpunkt jeder Linienfolge auf. Die erste Zeile gibt einen Punkt zurück, der weder Z-Koordinate noch ein Maß enthält; der aus der zweiten Zeile resultierende Punkt enthält eine Z-Koordinate und ein Maß. Die Funktion ST_PointN gibt Punkte mit einer Z-Koordinate oder einem Maß zurück, falls diese in der Quellenlinie enthalten sind.
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.