

 从补丁 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/)。

# LEN 函数
LEN

以字符数形式返回指定字符串的长度。

## 语法
语法

LEN 是 [LENGTH 函数](r_LENGTH.md)、[CHAR\$1LENGTH 函数](r_CHAR_LENGTH.md)、[CHARACTER\$1LENGTH 函数](r_CHARACTER_LENGTH.md)和 [TEXTLEN 函数](r_TEXTLEN.md)的同义词。

```
LEN(expression)
```

## 参数
参数

 *expression*   
`CHAR` 字符串、`VARCHAR` 字符串、`VARBYTE` 表达式或隐式计算为 `CHAR`、`VARCHAR` 或 `VARBYTE` 类型的表达式。

## 返回类型
返回类型

 INTEGER   
LEN 函数返回一个整数，表示输入字符串中的字符的数量。  
如果输入的是字符串，LEN 函数将返回多字节字符串中的字符的实际数量，而不是字节的数量。例如，存储 3 个 4 字节中文字符需要 `VARCHAR(12)` 列。LEN 函数将对同一字符串返回 `3`。要获取字符串长度（以字节为单位），请使用 [OCTET\$1LENGTH](r_OCTET_LENGTH.md) 函数。

## 使用说明
使用说明

如果 *expression* 为 `CHAR` 字符串，则不计算尾随空格。

如果 *expression* 为 `VARCHAR` 字符串，则计算尾随空格。

## 示例
示例

要返回字符串 `français` 中的字节数和字符数，请使用以下示例。

```
SELECT OCTET_LENGTH('français'), 
LEN('français');

+--------------+-----+
| octet_length | len |
+--------------+-----+
|            9 |   8 |
+--------------+-----+
```

要在不使用 OCTET\$1LENGTH 函数的情况下返回字符串 `français` 中的字节数和字符数，请使用以下示例。有关更多信息，请参阅[CAST 函数](r_CAST_function.md)。

```
SELECT LEN(CAST('français' AS VARBYTE)) as bytes, LEN('français');

+-------+-----+
| bytes | len |
+-------+-----+
|     9 |   8 |
+-------+-----+
```

要返回字符串 `cat`（没有尾随空格）、`cat `（有三个尾随空格）、`cat `（有三个尾随空格，强制转换为长度为 6 的 `CHAR`）以及 `cat `（有三个尾随空格，强制转换为长度为 6 的 `VARCHAR`）中的字符数，请使用以下示例。请注意，该函数不计算 `CHAR` 字符串的尾随空格，但的确计算 `VARCHAR` 字符串的尾随空格。

```
SELECT LEN('cat'), LEN('cat   '), LEN(CAST('cat   ' AS CHAR(6))) AS len_char, LEN(CAST('cat   ' AS VARCHAR(6))) AS len_varchar;

+-----+-----+----------+-------------+
| len | len | len_char | len_varchar |
+-----+-----+----------+-------------+
|   3 |   6 |        3 |           6 |
+-----+-----+----------+-------------+
```

以下示例使用 TICKIT 示例数据库的 VENUE 表中的数据。有关更多信息，请参阅 [示例数据库](c_sampledb.md)。

要返回 VENUE 表中最长的 10 个场地名称，请使用以下示例。

```
SELECT venuename, LEN(venuename)
FROM venue
ORDER BY 2 DESC, 1
LIMIT 10;

+-----------------------------------------+-----+
|                venuename                | len |
+-----------------------------------------+-----+
| Saratoga Springs Performing Arts Center |  39 |
| Lincoln Center for the Performing Arts  |  38 |
| Nassau Veterans Memorial Coliseum       |  33 |
| Jacksonville Municipal Stadium          |  30 |
| Rangers BallPark in Arlington           |  29 |
| University of Phoenix Stadium           |  29 |
| Circle in the Square Theatre            |  28 |
| Hubert H. Humphrey Metrodome            |  28 |
| Oriole Park at Camden Yards             |  27 |
| Dick's Sporting Goods Park              |  26 |
+-----------------------------------------+-----+
```