LEN 関数
指定された文字列の長さを文字列数として返します。
構文
LEN は LENGTH 関数、CHAR_LENGTH 関数、CHARACTER_LENGTH 関数、および TEXTLEN 関数 のシノニムです。
LEN(expression)
引数
- expression
-
CHAR
文字列、VARCHAR
文字列、VARBYTE
式、あるいはCHAR
、VARCHAR
、または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 | +-----------------------------------------+-----+