定義
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;