

 从补丁 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\$1Length
<a name="ST_Length-function"></a>

对于线性几何体，ST\$1Length 返回 2D 投影的笛卡尔长度。长度单位与用于表示输入几何体坐标的单位相同。对于点、多点和平面几何体，此函数返回零 (0)。当输入为几何体集合时，此函数返回集合中的几何体长度之和。

对于地理，ST\$1Length 返回由 SRID 确定的在椭球体上计算的输入线性地理的 2D 投影的测地线长度。长度以米为单位。对于点、多点和平面地理，此函数返回零 (0)。当输入为几何体集合时，此函数返回集合中的地理长度之和。

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

```
ST_Length(geo)
```

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

 *geo*   
一个 `GEOMETRY` 或 `GEOGRAPHY` 数据类型的值，或一个计算结果为 `GEOMETRY` 或 `GEOGRAPHY` 类型的表达式。

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

`DOUBLE PRECISION`

如果 *geo* 为 null，则返回 null。

如果找不到 SRID 值，则返回一个错误。

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

以下 SQL 返回多线串的笛卡尔长度。

```
SELECT ST_Length(ST_GeomFromText('MULTILINESTRING((0 0,10 0,0 10),(10 0,20 0,20 10))'));
```

```
st_length
--------------------------------
  44.142135623731
```

以下 SQL 返回几何体中线串的长度。

```
SELECT ST_Length(ST_GeogFromText('SRID=4326;LINESTRING(5 0,6 0,4 0)'));
```

```
 st_length 
------------------
 333958.472379804
```

以下 SQL 返回几何体中点的长度。

```
SELECT ST_Length(ST_GeogFromText('SRID=4326;POINT(4 5)'));
```

```
 st_length 
-----------
 0
```