Определение длины строки (в символах)
Функция
Определение длины строки в символах.
Спецификация
::=
Общие правила
-
< Строка >
должно иметь типCHAR
,VARCHAR
,NCHAR
,NCHAR VARYING
. -
< Строка >
может быть задана< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.select char_length(? (char(20))), character_length(:param (char(10))); Тестовая строка Testing line | 15| 10|
-
Для хранимых в таблицах значений
CHAR
,NCHAR
длина считается по усечению концевых пробелов и UNICODE-пробелов соответственно. -
Функции
CHARACTER_LENGTH
,CHAR_LENGTH
иLENGTH
эквивалентны.select max(character_length(model)), max(char_length(model)), max(char_length(model)) from auto; | 20 | 20 | 20 |
Возвращаемое значение
-
Для типа данных
CHAR
,NCHAR
возвращается количество символов в< строке >
, которое зависит от режима запуска ядра СУБД:-
с ключом
/COMPATIBILITY=STANDARD
– концевые пробелы учитываются; -
без ключа
/COMPATIBILITY=STANDARD
– концевые пробелы игнорируются.
create or replace table tab1(c char(50)); insert into tab1 values ('1234567890'); ! с ключом /COMPATIBILITY=STANDARD select length(c) from tab1; | 50| ! без ключа /COMPATIBILITY=STANDARD select length(c) from tab1; | 10|
-
-
Для типа данных
VARCHAR
,NCHAR VARYING
– реальное количество символов в< строке >
(независимо от ключа запуска/COMPATIBILITY=STANDARD
). -
NULL, если
< строка >
имеет NULL-значение. -
Если
< строка >
имеет тип данныхNCHAR
,NCHAR VARYING
, то возвращаемое значение равно L/2 символам, где L – длина< строки >
в байтах. -
Тип возвращаемого значения – INT.
Пример
select rtrim(firstnam)+' '+ltrim(name) from person where length(name+firstnam)=(select max(length(name+firstnam)) from person); | JEFFERSON SPARCK JONES | | PHYLLIS PAPAYANOPOULOS | | PHYLLIS PAPAYANOPOULOS | | MAXWELL PAPAYANOPOULOS | INL : number of rows shown: 4