To combine values from various columns into a single column.
For instance, you want a query against the Staff table to return the following result set:
CLARK WORKS AS A MANAGER
KING WORKS AS A PRESIDENT
MILLER WORKS AS A CLERK
Staff Table
empno | ename | job | mgr_no | hiredate | sal | commission | deptno |
---|---|---|---|---|---|---|---|
7369 | ALI | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
7788 | RAHUL | ANALYST | 7566 | 1982-12-09 | 3000.00 | NULL | 20 |
7839 | RAJ | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
7876 | ADAM | CLERK | 7788 | 1983-01-12 | 1100.00 | NULL | 20 |
7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
7902 | ARHAM | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
However, the data that you need to generate this result set comes from two different
columns, the ename and job columns in the Staff table.
Example
use the built-in function provided by your DBMS to concatenate values
from multiple columns.
DB2, Oracle, PostgreSQL
These databases use the double vertical bar as the concatenation operator:
SELECT ename||' WORKS AS A '||job as msg
FROM Staff
WHERE deptno=10
Output
msg |
---|
CLARK WORKS AS A MANAGER |
RAJ WORKS AS A PRESIDENT |
MILLER WORKS AS A CLERK |
MySQL
This database supports a function called CONCAT:
SELECT concat(ename, ' WORKS AS A ',job) as msg
FROM Staff
WHERE deptno=10
Output
msg |
---|
CLARK WORKS AS A MANAGER |
RAJ WORKS AS A PRESIDENT |
MILLER WORKS AS A CLERK |
SQL Server
Use the + operator for concatenation:
SELECT ename + ' WORKS AS A ' + job as msg
FROM Staff
WHERE deptno=10
Output
msg |
---|
CLARK WORKS AS A MANAGER |
RAJ WORKS AS A PRESIDENT |
MILLER WORKS AS A CLERK |
To combine values from multiple columns into a single column in a query, you can use the CONCAT function. In some databases, such as DB2, Oracle, and PostgreSQL, you can use the double pipe operator (||) as a shortcut for the CONCAT function. In SQL Server, you can use the plus sign (+) as a shortcut for CONCAT.
Code Runner
Copy the below query in the code runner to see the result
SELECT ename||' WORKS AS A '||job as msg
FROM Staff
WHERE deptno=10