Конкатенация
Функция
Слияние (объединение) символьных строк.
Спецификация
Варианты:
-
< строка >
::=
Синтаксические правила
-
Аргументы функции должны иметь приводимые друг к другу строковые типы данных.
-
< Символьное выражение >
может быть задано< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.select concat (? (char(10)), ? (char(5)), :param (char(10))); 123 456 789 |123456789| select ? (char(10)) + ? (char(5))|| :param (char(10)); 123 456 789 |123456789|
Общие правила
-
Результатом выполнения функции является объединение символьных строк.
-
Если одно из
< символьных выражений >
имеет NULL-значение, результатом будет также NULL-значение. -
Если один из аргументов имеет тип
VARCHAR
, то тип результата приводится к типуVARCHAR(n)
, где n – сумма длин объединяемых строк. -
Если в строковом выражении конкатенации встречается пустая строка '', то она воспринимается как выражение типа CHAR(1) с длиной 1, т.е. одиночный пробел. Если необходимо, чтобы эта пустая строка воспринималась как выражение длины 0, то нужно привести ее к типу VARCHAR: CAST ('' AS VARCHAR).
Примечания
-
Если ядро СУБД запущено с ключом /COMPATIBILITY=STANDARD, то для значений типа CHAR(n) будут усекаться только концевые пробелы крайней строки.
-
Если ядро СУБД запущено с ключом /COMPATIBILITY=ORACLE, то результатом конкатенации символьных значений с NULL-значением будет исходная символьная строка (а не NULL-значение).
Примечание
Ключ /COMPATIBILITY=ORACLE поддерживается со сборки 6.0.17.92.
Примеры
select '123 ' || cast '123' as varchar(3); |123 123| select cast '123 ' as varchar(5) || cast '123' as varchar(3); |123 123| select to_char(rownum)||' '||rtrim(firstnam) + ' ' + ltrim(name) from person order by name; | 1 SYLVIA ADKINSON | | 2 ED ADKINSON | | 3 ETHEL ADKINSON | | 4 FRANCOISE ADKINSON | | 5 VIRGINIA ADKINSON | … update tst set vc=cast vc+'123' as varchar(50); select concat('Сегодня: ', to_char(sysdate,'dd.mm.yyyy')); |Сегодня: 14.12.2007|