Конкатенация

Конкатенацией называется процесс построения новой строки посредством объединения двух (и более) строк. Конкатенация принадлежит к числу стандартных операций 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 и циклах.

Условные команды

Условная команда указывает на то, что некоторое действие (или последовательность действий) выполняется в зависимости от результатов проверки заданного логического условия. Определение выглядит запутанно, но на самом деле условные команды весьма просты. В неформальной формулировке условная команда означает следующее: «если условие истинно, выполнить такое-то действие».