定義
ST_Z は、ST_Point を入力パラメーターとして、その Z (標高) 座標を返します。SQLite では、ST_Z は ST_Point の Z 座標を更新することもできます。
構文
Oracle および PostgreSQL
sde.st_z (geometry1 sde.st_point)
SQLite
st_z (geometry geometryblob) st_z (input_shape geometryblob, new_Zvalue double)
戻り値のタイプ
Oracle
Number
PostgreSQL
Integer
SQLite
ST_Z を使用してポイントの Z 座標を返す場合、Double precision が返されます。ST_Z を使用してポイントの Z 座標を更新する場合、geometryblob が返されます。
例
行を一意に識別する gid 列と、geometry ポイント列を持つ z_test テーブルを作成します。INSERT ステートメントは、z_test テーブルに行を挿入します。
SELECT ステートメントは、前のステートメントで挿入されたポイントの id 列と倍精度の Z 座標をリストします。
Oracle
CREATE TABLE z_test (
id integer unique,
geometry sde.st_point
);
INSERT INTO z_test (id, geometry) VALUES (
1,
sde.st_point (2, 3, 32, 5, 4326)
);
SELECT id, sde.st_z (geometry) Z_COORD
FROM Z_TEST;
ID Z_COORD
1 32
PostgreSQL
CREATE TABLE z_test (
id integer unique,
geometry sde.st_point
);
INSERT INTO z_test (id, geometry) VALUES (
1,
sde.st_point (2, 3, 32, 5, 4326)
);
SELECT id, sde.st_z (geometry)
AS Z_COORD
FROM z_test;
id z_coord
1 32
SQLite
CREATE TABLE z_test (id integer);
SELECT AddGeometryColumn(
NULL,
'z_test',
'pt1',
4326,
'pointzm',
'xyzm',
'null'
);
INSERT INTO z_test (id, pt1) VALUES (
1,
st_point (2, 3, 32, 5, 4326)
);
SELECT id, st_z (pt1)
AS "The z coordinate"
FROM z_test;
id The z coordinate
1 32.0
ST_Z 関数を使用して、既存のポイントの座標値を更新することもできます。この例では、ST_Z を使用して、z_test の最初のポイントの Z 座標値を更新します。
UPDATE z_test
SET pt1=st_z(
(SELECT pt1 FROM z_test where id=1), 32.04)
WHERE id=1;