Конкатенация значений столбцов
Задача
Требуется извлечь значения нескольких столбцов в одни столбец. Например, в результате запроса к таблице EMP необходимо получить следующий результат:
CLARK WORKS AS A MANAGER
KING WORKS AS A PRESIDENT
MILLER WORKS AS A CLERK
Однако данные, формирующие это результирующее множество, располагаются в таблице EMP в двух разных столбцах, ENAME и JOB.
select e.ename, e.job
from emp e
where e.deptno = 10
ENAME JOB
---------- ----------
CLARK MANAGER
KING PRESIDENT
MILLER CLERK
Решение
Оператором конкатенации для баз данных Oracle является двойная вертикальная черта:
select e.ename || ' WORKS AS A '|| e.job
from emp e
where e.deptno = 10
E.ENAME||'WORKSASA'||E.JOB
--------------------------------
CLARK WORKS AS A MANAGER
KING WORKS AS A PRESIDENT
MILLER WORKS AS A CLERK
Обсуждение
Используйте функцию CONCAT для конкатенации значений нескольких столбцов. Оператор || является сокращенной записью функии CONCAT в Oracle.