Определение длины строки (в символах)
Функция
Определение длины строки в символах.
Спецификация
::=Общие правила
-
< Строка >должно иметь тип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