文字列式の文字の数を返す文字列関数です。
Synopsis
LENGTH(string-expression)
{fn LENGTH(string-expression)}
LENGTH は、与えられた文字列式について、そのバイト数ではなく、文字数を示す整数を返します。
-
LENGTH は、表示値ではなく、内部 (データ・ストレージ) 値の長さを返します。
-
LENGTH には、末尾の空白や文字列の終了文字は含まれません。先頭の空白は含まれます。
LTRIM 関数を使用して、文字列から先頭の空白を削除できます。
-
LENGTH は、先頭と末尾のゼロを削除して、数字をキャノニック形式に変換します。
-
LENGTH は NULL を渡すと NULL、空文字列を渡すと 0 を返します。
LENGTH は、{ } 括弧構文による ODBC スカラ関数、または SQL 汎用関数として使用できる点に注意してください。
SELECT DISTINCT LENGTH('INTERSYSTEMS') AS CharCount
FROM Sample.Person
以下の例は、先頭と末尾のゼロを削除し、長さ 1 を返します。
SELECT DISTINCT {fn LENGTH(00000.00)} AS CharCount
FROM Sample.Person
以下の 2 つの例は両方とも、先頭と末尾の空白を持つ文字列の長さを返します。1 番目は、
LENGTH が末尾の空白を含まず先頭の空白を含むため、15 を返します。2 番目は、
LTRIM が先頭の空白を含まないため、12 を返します。
SELECT DISTINCT LENGTH(' INTERSYSTEMS ') AS CharCount
FROM Sample.Person
SELECT DISTINCT LENGTH(LTRIM(' INTERSYSTEMS ')) AS CharCount
FROM Sample.Person
以下の例は、Sample.Person テーブル内の各 Name 値の文字数を返します。
SELECT Name,{fn LENGTH(Name)} AS CharCount
FROM Sample.Person
ORDER BY CharCount
以下の例は、DOB (誕生日) フィールド内の文字数を返します。(LENGTH、CHAR_LENGTH、CHARACTER_LENGTH によって) 返される長さは、日付の内部 ($HOROLOG) 形式であり、表示形式ではありません。DOB の表示長は、10 文字です。3 つの長さの関数は、すべて内部長 5 を返します。
SELECT DOB,{fn LENGTH(DOB)} AS LenCount,
CHAR_LENGTH(DOB) AS CCount,
CHARACTER_LENGTH(DOB) AS CtrCount
FROM Sample.Person
以下の例は、Unicode 文字の文字列の長さを返します。返される長さは、文字数 (7) であり、バイト数ではありません。
SET a=$C(920)_$C(913)_$C(923)_$C(913)_$C(931)_$C(931)_$C(913)
&sql(SELECT LENGTH(:a)
INTO :b
FROM Sample.Person)
WRITE !,"The Greek Sea: ",a,!,$LENGTH(a),!,b