Конкатенация строк в PostgreSQL с условием

Рейтинг: 0Ответов: 1Опубликовано: 22.08.2023

Имеется таблица с информацией о сотрудниках, содержащая колонки: house_number, building_structure, apartment. Необходимо в запроcе select объединить значения этих полей в строку "адрес". я попытался использовать следующую конструкцию: CONCAT('д.', house_number,' корп.',building_structure , ' кв. ', apartment) AS Адрес, Если значения в колонках, не пустые, то всё выводится корректно (д.1 корп.2 кв.12) но если значение в колонках пустые (empty_string) то в результате выводится: д.1 корпус.кв. Подскажите пожалуйста как правильно составить запрос, что бы при отсутствии значения в одной из колонок не выводился префикс? например д.1 и всё или д.1 кв.12 при отсутствии значения корпус в колонке building_structure.

p.s. Сервер PostgreSQL 12

Ответы

▲ 2

Спасибо всем за идеи, правильное решение выглядит следующим образом:

CONCAT('д.' || NULLIF(house_number,''), ' корп.' || NULLIF(building_structure,''), ' кв. ' || NULLIF(apartment,''))