How to convert many row data to columns?

In this forum you can share stuff related to Oracle 11g, 10g, 9i.
Post Reply
nadia
Posts: 15
Joined: Mon May 14, 2007 1:26 am
Location: Syria

How to convert many row data to columns?

Post by nadia »

Hi,

I need some help on how to do this:

I've got a data set:

Code: Select all

Deptno    Ename      
10        MILLER     
20        FORD     
10        KING 
30        JAMES
10        CLARK 
20        ADAMS
The goal is to have 1 row only per Deptno

Result set should look like:

Code: Select all

Deptno    Ename1   Ename2   Ename3 
10        MILLER   KING     CLARK
20        FORD     ADAMS
30        JAMES
Any Ideas?
Thanks
admin
Posts: 2063
Joined: Fri Mar 31, 2006 12:59 am
Location: Pakistan
Contact:

Post by admin »

nadia
Posts: 15
Joined: Mon May 14, 2007 1:26 am
Location: Syria

Post by nadia »

Hi,
I'm sorry, there was a mistake in the question.
What i mean is that I've got a data set:

Code: Select all

Location  Deptno    Ename   
NEW YORK  10        MILLER   
NEW YORK  20        FORD       
CHICAGO   10        KING        
NEW YORK  30        JAMES       
CHICAGO   20        ADAMS   


The goal is to have 1 row only per Deptno

Result set should look like for deptno=10:

Code: Select all

Location    10       20      30
NEW YORK    MILLER   FORD    JAMES
CHICAGO     KING     ADAMS
Any Ideas?
Thanks
amitm_66
Posts: 6
Joined: Fri Oct 26, 2007 9:26 am
Location: India

Post by amitm_66 »

SELECT MAX(CASE WHEN dept = 10 THEN ename END) dept_10,
MAX(CASE WHEN dept = 20 THEN ename END) dept_20,
MAX(CASE WHEN dept = 30 THEN ename END) dept_30
from (select dept,empno,ename,row_number() over(PARTITION BY dept ORDER BY ename) rn from emp) x
group by rn
Post Reply

Who is online

Users browsing this forum: No registered users and 11 guests