Конкатенация
Конкатенацией называется процесс построения новой строки посредством объединения двух (и более) строк. Конкатенация принадлежит к числу стандартных операций PostgreSQL и поэтому может напрямую использоваться с переменными в функциях PL/pgSQL. Это незаменимый инструмент форматирования при работе с несколькими переменными, содержащими символьные данные.
Конкатенация используется только со строками. Оператор конкатенации (||) ставится между объединяемыми компонентами (литералами или строковыми переменными).
В листинге 6.26 операция конкатенации создает строку, возвращаемую функцией.
Листинг 6.26. Возвращение результата конкатенации
CREATE OR REPLACE FUNCTION books.compound_word(text, text)
RETURNS text AS
$BODY$
DECLARE
-- Объявление псевдонимов для аргументов функций.
word1 ALIAS FOR $1;
word2 ALIAS FOR $2;
BEGIN
-- Вернуть объединение двух слов.
RETURN word1 || word2;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
Если передать функции аргументы «break» и «fast», функция вернет объединенную строку «breakfast»:
SELECT books.compound_word('break', 'fast');
Ответ: breakfast.
Передача управления
Команды передачи управления существуют практически во всех современных языках программирования, и PL/pgSQL не является исключением. С технической точки зрения сам вызов функции можно рассматривать как передачу управления последовательности команд PL/pgSQL. Тем не менее существуют и другие, более совершенные средства, определяющие последовательность выполнения команд PL/pgSQL. Речь идет об условных командах IF/THEN и циклах.
Условные команды
Условная команда указывает на то, что некоторое действие (или последовательность действий) выполняется в зависимости от результатов проверки заданного логического условия. Определение выглядит запутанно, но на самом деле условные команды весьма просты. В неформальной формулировке условная команда означает следующее: «если условие истинно, выполнить такое-то действие».