プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

C.2 SDO_WITHIN_DISTANCEの例

SDO_WITHIN_DISTANCE演算子は、指定されたオブジェクトから指定された距離内に存在する一連の空間オブジェクトを識別します。距離には、近似値または正確な値を指定できます。querytype=FILTERを指定すると、1次フィルタ処理のみが実行されるため、距離は近似値になります。指定しない場合は、1次と2次の両方のフィルタ処理が実行されるため、距離は正確な値になります。

例C-1 高速道路から一定距離内に存在するすべての都市の検索

例C-1では、州間高速道路I170から15マイル以内に存在するすべての都市を検索します。

SELECT /*+ ORDERED */ c.city
FROM geod_interstates i, geod_cities c
WHERE i.highway = 'I170'
   AND sdo_within_distance (
        c.location, i.geom,
       'distance=15 unit=mile') = 'TRUE';

例C-1では、指定した高速道路(i.highway = 'I170')から15マイル以内('distance=15 unit=mile')に存在するすべての都市を検索します。デフォルトでは、結果は正確な値となります(querytypeパラメータを使用せず、問合せを1次フィルタ処理に制限しなかったため)。この例のWHERE句の内容は次のとおりです。

  • i.highwayはINTERSTATES表のHIGHWAY列で、I170はHIGHWAY列の値です。

  • c.locationでは、検索列(geometry1)を指定します。これは、GEOD_CITIES表のLOCATION列です。

  • i.geomでは、問合せウィンドウ(aGeom)を指定します。これは、GEOD_INTERSTATES表の、HIGHWAY列に値I170が含まれている行のGEOM列にある空間ジオメトリです。

例C-2 都市から一定距離内に存在するすべての高速道路の検索

例C-2では、Tampa市から15マイル以内に存在するすべての州間高速道路を検索します。

SELECT /*+ ORDERED */ i.highway
FROM geod_cities c, geod_interstates i
WHERE c.city = 'Tampa'
   AND sdo_within_distance (
        i.geom, c.location,
        'distance=15 unit=mile') = 'TRUE';

例C-2では、指定した都市(c.city = 'Tampa')から15マイル以内('distance=15 unit=mile')に存在するすべての高速道路を検索します。デフォルトでは、結果は正確な値となります(querytypeパラメータを使用せず、問合せを1次フィルタ処理に制限しなかったため)。この例のWHERE句の内容は次のとおりです。

  • c.cityはGEOD_CITIES表のCITY列で、TampaはCITY列の値です。

  • i.geomでは、検索列(geometry1)を指定します。これは、GEOD_INTERSTATES表のGEOM列です。

  • c.locationでは、問合せウィンドウ(aGeom)を指定します。これは、GEOD_CITIES表の、CITY列に値Tampaが含まれている行のLOCATION列にある空間ジオメトリです。