16.20 - ST_Geometryタイプで表わされるサブタイプ専用のメソッド - Teradata Vantage NewSQL Engine

Teradata Vantage™ 地理空間データ型

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1181-162K-JPN

一部のメソッドは、ST_Geometryタイプで表わされるサブタイプ専用です。例えば、ST_Pointの値を表わすST_Geometryタイプのみを操作するメソッドがあります。

その他のメソッドでは、地理空間型間での空間リレーションシップを確認します。次に示すテーブルについて考察します。このテーブルではsample_citiesで都市のリストを表わし、sample_streetsで道路のリストを表わします。

   CREATE TABLE sample_cities(
      skey INTEGER,
      cityName VARCHAR(40),
      cityShape ST_GEOMETRY);

   CREATE TABLE sample_streets(
      skey INTEGER,
      streetName VARCHAR(40),
      streetShape ST_GEOMETRY);

次に示すリクエストでは、sample_citiesテーブルにポリゴン値を挿入し、sample_streetsテーブルに折れ線値を挿入しています。

   INSERT INTO sample_cities
   VALUES(0, 'Oceanville', 'POLYGON((1 1, 1 3, 6 3, 6 0, 1 1))');

   INSERT INTO sample_cities
   VALUES(1, 'Seaside', 'POLYGON((10 10, 10 20, 20 20, 20 15, 10 10))');

   INSERT INTO sample_streets
   VALUES(1, 'Main Street', 'LINESTRING(2 2, 3 2, 4 1)');

   INSERT INTO sample_streets
   VALUES(1, 'Coast Blvd', 'LINESTRING(12 12, 18 17)');

次に示す問合わせでは、ST_Withinメソッドを使用して、いずれかの道路が、いずれかの都市の範囲内にあるかどうかを確認します。

   SELECT streetName, cityName
   FROM sample_cities, sample_streets
   WHERE streetShape.ST_Within(cityShape) = 1
   ORDER BY cityName;

streetName                               cityName
---------------------------------------- ----------------
Coast Blvd                               Seaside
Main Street                              Oceanville