全部产品
Search
文档中心

云原生大数据计算服务 MaxCompute:ST_WITHIN

更新时间:Aug 26, 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))'));

相关文档