LEN 函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

LEN 函数

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

语法

LEN 是 LENGTH 函数CHAR_LENGTH 函数CHARACTER_LENGTH 函数TEXTLEN 函数的同义词。

LEN(expression)

参数

expression

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

返回类型

INTEGER

LEN 函数返回一个整数,表示输入字符串中的字符的数量。

如果输入的是字符串,LEN 函数将返回多字节字符串中的字符的实际数量,而不是字节的数量。例如,存储 3 个 4 字节中文字符需要 VARCHAR(12) 列。LEN 函数将对同一字符串返回 3。要获取字符串长度(以字节为单位),请使用 OCTET_LENGTH 函数。

使用说明

如果 expressionCHAR 字符串,则不计算尾随空格。

如果 expressionVARCHAR 字符串,则计算尾随空格。

示例

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

SELECT OCTET_LENGTH('français'), LEN('français'); +--------------+-----+ | octet_length | len | +--------------+-----+ | 9 | 8 | +--------------+-----+

要在不使用 OCTET_LENGTH 函数的情况下返回字符串 français 中的字节数和字符数,请使用以下示例。有关更多信息,请参阅 CAST 函数

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 表中的数据。有关更多信息,请参阅示例数据库

要返回 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 | +-----------------------------------------+-----+