定義
ST_X は、ST_Point を入力パラメーターとして、その X 座標を返します。SQLite では、ST_X は ST_Point の X 座標を更新することもできます。
構文
Oracle および PostgreSQL
sde.st_x (point1 sde.st_point)
SQLite
st_x (point1 geometryblob) st_x (input_point geometryblob, new_Xvalue double)
戻り値のタイプ
Double precision
SQLite では、ST_X 関数を使用してポイントの X 座標を更新できます。その場合は geometryblob が返されます。
例
行を一意に識別する gid 列と、pt1 ポイント列を持つ x_test テーブルを作成します。
INSERT ステートメントは、2 つの行を挿入します。1 つは、Z 座標またはメジャー値のないポイントです。もう 1 つは、Z 座標とメジャー値があるポイントです。
SELECT クエリは、ST_X 関数を使用して各ポイント フィーチャの X 座標を取得します。
Oracle
CREATE TABLE x_test (
gid integer unique,
pt1 sde.st_point
);
INSERT INTO X_TEST VALUES (
1,
sde.st_pointfromtext ('point (10.02 20.01)', 4326)
);
INSERT INTO X_TEST VALUES (
2,
sde.st_pointfromtext ('point zm(10.1 20.01 5 7)', 4326)
);
SELECT gid, sde.st_x (pt1) "The X coordinate"
FROM X_TEST;
GID The X coordinate
1 10.02
2 10.10
PostgreSQL
CREATE TABLE x_test (
gid integer unique,
pt1 sde.st_point
);
INSERT INTO x_test VALUES (
1,
sde.st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO x_test VALUES (
2,
sde.st_point ('point zm(10.1 20.01 5 7)', 4326)
);
SELECT gid, sde.st_x (pt1)
AS "The X coordinate"
FROM x_test;
gid The X coordinate
1 10.02
2 10.10
SQLite
CREATE TABLE x_test (gid integer);
SELECT AddGeometryColumn(
NULL,
'x_test',
'pt1',
4326,
'pointzm',
'xyzm',
'null'
);
INSERT INTO x_test VALUES (
1,
st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO x_test VALUES (
2,
st_point ('point zm(10.1 20.01 5 7)', 4326)
);
SELECT gid, st_x (pt1)
AS "The X coordinate"
FROM x_test;
gid The X coordinate
1 10.02
2 10.10
ST_X 関数を使用して、既存のポイントの座標値を更新することもできます。この例では、ST_X を使用して、x_test の最初のポイントの X 座標値を更新します。
UPDATE x_test
SET pt1=st_x(
(SELECT pt1 FROM x_test WHERE gid=1),
10.04
)
WHERE gid=1;