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