全部產品
Search
文件中心

MaxCompute:ST_WITHIN

更新時間:Aug 27, 2026

ST_WITHIN函數用於判斷value1對應的地理對象是否被包含到value2對應的地理對象。即判斷value1所對應的地理對象的每一個點是否都被包含到value2所對應的地理對象中。

命令格式

BOOLEAN ST_WITHIN(GEOGRAPHY <value1>, GEOGRAPHY <value2>)

參數說明

value1、value2:必填。GEOGRAPHY資料類型的地理對象。可根據需求使用ST_GEOGPOINTST_GEOGFROMWKBST_GEOGFROMTEXTST_MAKELINEST_MAKEPOLYGON函數來構造GEOGRAPHY類型對象。

傳回值說明

返回BOOLEAN類型。返回規則如下:

  • 若value1所對應的地理對象的每一個點都被包含到value2所對應的地理對象中,則返回TRUE;否則返回FALSE。

  • 若value1或value2為空白的地理對象,則返回FALSE。

一個地理對象是不包含它的邊界節點的。

使用樣本

判斷點(5, 5))、(20, 20)和(0, 0)是否位於多邊形 POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))中。

-- 返回TRUE,POINT(5 5)在POLYGON內部
SELECT ST_WITHIN(ST_GEOGFROMTEXT('POINT(5 5)'), ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'));

-- 返回FALSE,POINT(20 20)在POLYGON外部
SELECT ST_WITHIN(ST_GEOGFROMTEXT('POINT(20 20)'), ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'));

-- 返回FALSE,POINT(0 0)在POLYGON邊界上
SELECT ST_WITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'));

相關文檔