

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# ST\$1Distance
<a name="ST_Distance-function"></a>

对于输入几何体，ST\$1Distance 返回两个输入几何体值的 2D 投影之间的最小欧氏距离。

对于 3DM、3DZ、4D 几何体，ST\$1Distance 返回两个输入几何体值的 2D 投影之间的欧氏距离。

对于输入地理，ST\$1Distance 返回两个 2D 点的测地线距离。距离以米为单位。对于点和空点以外的地理，将返回错误。

## 语法
<a name="ST_Distance-function-syntax"></a>

```
ST_Distance(geo1, geo2)
```

## 参数
<a name="ST_Distance-function-arguments"></a>

 *geo1*   
一个 `GEOMETRY` 或 `GEOGRAPHY` 数据类型的值，或一个计算结果为 `GEOMETRY` 或 `GEOGRAPHY` 类型的表达式。*geo1* 的数据类型必须与 *geo2* 相同。

 *geo2*   
一个 `GEOMETRY` 或 `GEOGRAPHY` 数据类型的值，或一个计算结果为 `GEOMETRY` 或 `GEOGRAPHY` 类型的表达式。*geo2* 的数据类型必须与 *geo1* 相同。

## 返回类型
<a name="ST_Distance-function-return"></a>

`DOUBLE PRECISION`，采用与输入几何体或地理相同的单位。

如果 *geo1* 或 *geo2* 为 null 或为空，则返回 null。

如果 *geo1* 和 *geo2* 不具有相同的空间参考系统标识符 (SRID) 值，则返回一个错误。

如果 *geo1* 或 *geo2* 为几何体集合，则返回一个错误。

## 示例
<a name="ST_Distance-function-examples"></a>

以下 SQL 返回两个多边形之间的距离。

```
SELECT ST_Distance(ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'), ST_GeomFromText('POLYGON((-1 -3,-2 -1,0 -3,-1 -3))'));
```

```
  st_distance
-----------
1.4142135623731
```

以下 SQL 使用 GEOGRAPHY 数据类型返回勃兰登堡门和柏林国会大厦之间的距离（以米为单位）。

```
SELECT ST_Distance(ST_GeogFromText('POINT(13.37761826722198 52.516411678282445)'), ST_GeogFromText('POINT(13.377950831464005 52.51705102546893)'));
```

```
   st_distance
------------------
 74.64129172609631
```