LEN 関数 - Amazon Redshift

LEN 関数

指定された文字列の長さを文字列数として返します。

構文

LEN は LENGTH 関数CHAR_LENGTH 関数CHARACTER_LENGTH 関数、および TEXTLEN 関数 のシノニムです。

LEN(expression)

引数

expression

CHAR 文字列、VARCHAR 文字列、VARBYTE 式、あるいは CHARVARCHAR、または VARBYTE 型に暗黙的に評価される式。

戻り型

INTEGER

LEN 関数は、入力文字列の文字数を示す整数を返します。

入力が文字列の場合、LEN 関数は、マルチバイト文字列のバイト数ではなく、この文字列の実際の文字数を返します。例えば、4 バイトの中国語文字を 3 つ保存するためには、VARCHAR(12) 列が必要です。LEN 関数は、その文字列に対して 3 を返します。文字列の長さをバイト単位で取得するには、OCTET_LENGTH関数を使用します。

使用に関する注意事項

CHAR 文字列である場合、末尾のスペースはカウントされません。

VARCHAR 文字列である場合、末尾のスペースはカウントされます。

文字列 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、末尾にスペースが 3 つある cat 、末尾にスペースが 3 つあり、長さ 6 の CHAR にキャストされる cat 、末尾にスペースが 3 つあり、長さ 6 の VARCHAR にキャストされる cat の文字数を返すには、次の例を使用します。この関数は 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 テーブル内で最長の 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 | +-----------------------------------------+-----+