-- The pointn_test table is created with the gid column, -- which uniquely identifies each row, and the ln1 ST_LineString column. CREATE TABLE pointn_test (gid integer, ln1 ST_LineString); -- The INSERT statements insert two linestring values. -- The first linestring doesn't have Z coordinates or measures, -- while the second linestring has both. INSERT INTO pointn_test VALUES( 1, ST_LineFromText('linestring (10.02 20.01,23.73 21.92,30.10 40.23)',1000) ); INSERT INTO pointn_test VALUES( 2, 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)',1000) ); -- The query lists the gid column and the second vertex of each linestring. -- The first row results in a ST_Point without a Z coordinate or measure, -- while the second row results in a ST_Point with a Z coordinate and a -- measure. The ST_PointN function will also include a Z coordinate or -- measure value if they exist in the source linestring. SELECT gid, ST_PointN(ln1,2) the_2nd_vertex FROM pointn_test;