Oracle SQL listagg function is analytic function and can be used for generating aggregate lists.
Steps to demonstrate Oracle SQL listagg function
- Create employee table
- create table employee ( employee_number number, employee_name varchar2(50), department_number number);
- create table department ( department_number number, departmen_name varchar2(50));
- Insert data into department table
- insert into department values (10,’IT’);
- insert into department values (11,’SALES’);
- insert into department values (12,’FINANCE’);
- insert into department values (13,’HR’);
- insert into department values (14,’ADMINISTRATION’);
- Insert date into employee table
- INSERT into employee values (1,’John Doe’ , 10);
- INSERT into employee values (1,’foo’ , 10);
- INSERT into employee values (1,’Adam’ , 11);
- INSERT into employee values (1,’SAM’ , 11);
- INSERT into employee values (1,’Mary’ , 11);
- INSERT into employee values (1,’Linda’ , 12);



- Oracle SQL listagg function to generate employee list for deparments
SELECT d.department_name
,LISAGG(e.employee_name,';') WITHIN GROUP ( ORDER BY d.department_name ) list_of_employee
FROM employee e
,department d
WHERE e.dpartment_number = d.department_number
GROUP BY d.department_name;
