WHERE db2gse.ST_Within(c.location,:BayArea)=1
WHERE db2gse.ST_Within(c.location,:BayArea)=1
表 4顯示建立空間查詢來開發空間索引的正確與不正確方法。
空間查詢 | 違反規則 |
---|---|
SELECT * FROM customers c WHERE db2gse.ST_Within(c.location,:BayArea)=1 | 本範例沒有違反任何條件。 |
SELECT * FROM customers c WHERE db2gse.ST_Distance(c.location,:SanJose)<10 | 本範例沒有違反任何條件。 |
SELECT * FROM customers c WHERE db2gse.ST_Length(c.location)>10 | 述詞必須用於 WHERE 子句中。(ST_Length 是一個空間函數,但不是一個述詞。) |
SELECT * FROM customers c WHERE 1=db2gse.ST_Within(c.location,:BayArea) | 述詞必須位於比較的左邊。 |
SELECT * FROM customers c WHERE db2gse.ST_Within(c.location,:BayArea)=2 | 相等比較必須使用整數常數 1。 |
SELECT * FROM customers c WHERE db2gse.ST_Within(:SanJose,:BayArea)=1 | 述詞中必須有一個空間直欄當作搜尋目標,而該直欄上必須建立一個空間索引。 (SanJose 及 BayArea 不是空間直欄,因此沒有與它們相關的空間索引。) |