ST_Geometryタイプで表わされるサブタイプ専用のメソッド - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - 地理空間データ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/vci1556127188517.ditamap
dita:ditavalPath
ja-JP/vci1556127188517.ditaval
dita:id
B035-1181
Product Category
Software
Teradata Vantage

一部のメソッドは、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