指定された文字列の長さを文字列数として返します。
構文
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 |
+-----------------------------------------+-----+