ST_Y

定義

ST_Y は、ST_Point を入力パラメータとして、その Y 座標を返します。SQLite では、ST_Y は ST_Point の Y 座標を更新することもできます。

構文

Oracle および PostgreSQL

sde.st_y (point1 sde.st_point)

SQLite

double   st_y (point1  geometryblob)
geometry st_y (input_shape geometryblob, new_Yvalue double)

戻り値のタイプ

Double precision

SQLite では、ST_Y 関数を使用してポイントの Y 座標を更新できます。その場合は geometryblob が返されます。

行を一意に識別する gid 列と、pt1 ポイント列を持つ y_test テーブルを作成します。

INSERT ステートメントは、2 つの行を挿入します。1 つは、Z 座標またはメジャー値のないポイントです。もう 1 つは、Z 座標とメジャー値があるポイントです。

SELECT クエリは、ST_Y 関数を使用して各ポイント フィーチャの Y 座標を取得します。

Oracle

CREATE TABLE y_test (
 gid integer unique,
 pt1 sde.st_point
);
INSERT INTO Y_TEST VALUES (
 1,
 sde.st_pointfromtext ('point (10.02 20.02)', 4326)
);
INSERT INTO Y_TEST VALUES (
 2,
 sde.st_pointfromtext ('point zm(10.1 20.01 5.0 7.0)', 4326)
);
SELECT gid, sde.st_y (pt1) "The Y coordinate"
 FROM Y_TEST;
       GID     The Y coordinate
         1          20.02
         2          20.01

PostgreSQL

CREATE TABLE y_test (
 gid integer unique,
 pt1 sde.st_point
);
INSERT INTO y_test VALUES (
 1,
 sde.st_point ('point (10.02 20.02)', 4326)
);
INSERT INTO y_test VALUES (
 2,
 sde.st_point ('point zm(10.1 20.01 5.0 7.0)', 4326)
);
SELECT gid, sde.st_y (pt1) 
 AS "The Y coordinate"
 FROM y_test;
       gid    The Y coordinate
         1          20.02
         2          20.01

SQLite

CREATE TABLE y_test (gid integer);
 
SELECT AddGeometryColumn(
 NULL,
 'y_test',
 'pt1',
 4326,
 'pointzm',
 'xyzm',
 'null'
);
INSERT INTO y_test VALUES (
 1,
 st_point ('point (10.02 20.02)', 4326)
);
INSERT INTO y_test VALUES (
 2,
 st_point ('point zm(10.1 20.01 5.0 7.0)', 4326)
);
SELECT gid, st_y (pt1) 
 AS "The Y coordinate"
 FROM y_test;
gid    The Y coordinate
1          20.02
2          20.01

ST_Y 関数を使用して、既存のポイントの座標値を更新することもできます。この例では、ST_Y を使用して、y_test の最初のポイントの Y 座標値を更新します。

UPDATE y_test
 SET pt1=st_y(
  (SELECT pt1 FROM y_test WHERE gid=2),
  20.1
  )
 WHERE gid=2;

関連トピック

5/25/2014