ST_M

定義

ST_M は、ST_Point を入力パラメータとして、そのメジャー(M)座標を返します。

SQLite では、ST_M はメジャー値の更新にも使用できます。

構文

Oracle および PostgreSQL

sde.st_m (point1 sde.st_point)

SQLite

st_m (point1 geometryblob)
st_m (point1 geometryblob, new_Mvalue double)

戻り値のタイプ

Oracle および PostgreSQL

Number

SQLite

メジャー値を検索している場合は Double precision。メジャー値を更新している場合は geometryblob。

Oracle

m_test テーブルを作成し、3 つのポイントを挿入します。3 つのポイントすべてに、メジャー値が含まれています。ST_M 関数を使用して SELECT ステートメントを実行すると、各ポイントのメジャー値が返されます。

CREATE TABLE m_test (
 id integer,
 geometry sde.st_point);
INSERT INTO M_TEST VALUES (
 1,
 sde.st_point (2, 3, 32, 5, 4322)
);
INSERT INTO M_TEST VALUES (
 2,
 sde.st_point (4, 5, 20, 4, 4326)
);
INSERT INTO M_TEST VALUES (
 3,
 sde.st_point (3, 8, 23, 7, 4326)
);
SELECT id, sde.st_m (geometry) M_COORD
 FROM M_TEST; 
        ID    M_COORD
         1          5
         2          4
         3          7

PostgreSQL

m_test テーブルを作成し、3 つのポイントを挿入します。3 つのポイントすべてに、メジャー値が含まれています。ST_M 関数を使用して SELECT ステートメントを実行すると、各ポイントのメジャー値が返されます。

CREATE TABLE m_test (
 id serial,
 geometry sde.st_point
);
INSERT INTO m_test (geometry) VALUES (
 sde.st_point (2, 3, 32, 5, 4326)
);
INSERT INTO m_test (geometry) VALUES (
 sde.st_point (4, 5, 20, 4, 4326)
);
INSERT INTO m_test (geometry) VALUES (
 sde.st_point (3, 8, 23, 7, 4326)
);
SELECT id, sde.st_m (geometry) 
 AS M_COORD
 FROM m_test; 
        id    m_coord
         1          5
         2          4
         3          7

SQLite

最初の例では、m_test テーブルを作成し、3 つのポイントを挿入します。3 つのポイントすべてに、メジャー値が含まれています。ST_M 関数を使用して SELECT ステートメントを実行すると、各ポイントのメジャー値が返されます。

CREATE TABLE m_test (
 id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
 NULL,
 'm_test',
 'geometry',
 4326,
 'pointzm',
 'xyzm',
 'null'
);
INSERT INTO m_test (geometry) VALUES (
 st_point (2, 3, 32, 5, 4326)
);
INSERT INTO m_test (geometry) VALUES (
 st_point (4, 5, 20, 4, 4326)
);
INSERT INTO m_test (geometry) VALUES (
 st_point (3, 8, 23, 7, 4326)
);
SELECT id, st_m (geometry) 
 AS M_COORD
 FROM m_test; 
id    m_coord
1     5.0
2     4.0
3     7.0

2 つ目の例では、m_test テーブル内にあるレコード 3 のメジャー値を更新します。

SELECT st_m (geometry, 7.5)
 FROM m_test
 WHERE id = 3;

関連トピック

5/25/2014