Конкатенация значений столбцов

Задача

Требуется извлечь значения нескольких столбцов в одни столбец. Например, в результате запроса к таблице 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.