使用與參考手冊

建置空間查詢

本節說明如何利用空間函數及述詞來建置空間查詢。

空間函數與 SQL

DB2 Spatial Extender 包括對空間資料執行各種作業的函數。 本節範例說明如何使用空間函數來建置屬於您自己的空間查詢。

表 3提供空間函數及其所能執行的作業類型之列示。

表 3. 空間函數與作業
函數類型 作業範例
計算 計算兩點之間的距離
比較 尋找位於洪水區內的所有客戶
資料交換 將資料轉換成支援的格式
轉換 對某一點新增五英里半徑範圍

關於空間函數的詳細資訊,請參閱幾何與相關的空間函數SQL 查詢的空間函數

範例 1︰比較

下列查詢搜尋各百貨公司與客戶之間的平均距離。本範例使用的空間函數為 ST_Distance 和 ST_Within。

SELECT s.id, AVG(db2gse.ST_Distance(c.location,s.location))
FROM customers c, stores s
WHERE db2gse.ST_Within(c.location,s.zone)=1
GROUP BY s.id

範例 2︰資料交換

下列查詢搜尋居住於舊金山海灣區的客戶位置。本範例使用的空間函數為 ST_AsText (資料交換) 和 ST_Within。ST_AsText 可將 c.location 直欄內的空間資料轉換成 OGC TEXT 格式。

SELECT db2gse.ST_AsText(c.location,cordref(1))
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=1

範例 3︰計算

下列查詢搜尋超過 10.5 英里長的所有街道。本範例使用的空間函數為 ST_Length。

SELECT s.name,s.id
FROM street s
WHERE db2gse.ST_Length(s.path) > 10.5

範例 4︰轉換

此查詢搜尋居住於洪水區或洪水區邊界 2 英里內的客戶。 本範例使用的空間函數為 ST_Buffer (轉換) 和 ST_Within。

SELECT c.name,c.phoneNo,c.address
FROM customers c
WHERE db2gse.ST_Within(c.location,ST_Buffer(:floodzone,2))=1


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]