У нас имеется связующая таблица из идентификаторов первичных ключей по другим трём таблицам:
SELECT * FROM a.t_d;
Скриншот таблицы:
Мы делаем соединение JOIN для визуального представления данных:
Мы извлекаем строковые значения из трёх таблиц и подставляем их в результирующую таблицу по идентификаторной привязке.
В результате мы видим что-то похожее на доменное имя (на адрес сайта).
И в этот момент нас посещает мысль, что неплохо бы как-то склеить эти строки и показать склеенный результат в отдельном столбце для будущих вычислений. В общем сделать так, чтобы у нас была одна Строка данных.
Решение задачи
В решении задачи по добавлению нового столбца в SELECT в PostgreSQL нам поможет функция concat(), которая умеет работать со строковым типом данных.
Наше выражение конкатенации строк будет выглядеть так:
concat (t_uri_schemes.scheme, '://', t_dname.dname, '.', t_root_zone.zone)
Мы используем названия столбцов и обычные строковые вставки.
После конкатенации нам нужно как-то назвать этот результат. Нужно назвать столбец, в который пойдёт этот результат:
concat (t_uri_schemes.scheme, '://', t_dname.dname, '.', t_root_zone.zone) AS "Домен"
Мы добавляем ключевое слово AS после которого пишем название для нашего столбца сгенерированного результата — это название «Домен». Мы заключаем его в двойные кавычки, потому что есть заглавная буква.
Итоговый код запроса SELECT:
— SELECT и JOIN с добавлением несуществующего столбца генерируемого автоматически
SELECT
t_d.id «Идентификатор домена»,
t_uri_schemes.scheme «URI-Схема«,
t_dname.dname «Имя домена«,
t_root_zone.zone «Корневая зона«,
concat(t_uri_schemes.scheme, ‘://’, t_dname.dname, ‘.’, t_root_zone.zone) AS «Домен«
FROM a.t_d
JOIN a.t_uri_schemes ON s = t_uri_schemes.id
JOIN a.t_dname ON d = t_dname.id
JOIN a.t_root_zone ON r = t_root_zone.id;
Результат запроса:
Информационные ссылки
Официальный сайт WEB-оболочки pgAdmin — https://www.pgadmin.org
Официальный сайт СУБД PostgreSQL — https://www.postgresql.org
Раздел «Таблица 9.10. Другие строковые функции» — https://postgrespro.ru/docs/postgresql/14/functions-string#FUNCTIONS-STRING-OTHER