Convert Rows into Columns I have data like :

Emp Code | Name | Qualification | Completed Year
10000001   Ram    B.E               2005
10000001   Ram    M.E               2007
10000002   Sita   B.E               2003
10000002   Sita   MS                2005
10000002   Sita   Ph.D              2010


I want to convert like

Emp Code | Name |UG_Qualifi | Completed Yr| PG_Qualifi | Completed Yr
10000001   Ram    B.E               2005      M.E               2007
10000002   Sita   B.E               2003      MS                2005
Making a few assumptions, here is a query that would give you the desired results in Oracle:

SELECT EmpCode, Name
   , Max(UG_Qualification) UG_Qualification
   , Max(UG_CompletedYear) UG_CompletedYear
   , Max(PG_Qualification) PG_Qualification
   , Max(PG_CompletedYear) PG_CompletedYear
FROM
(
   SELECT EmpCode, Name
      , Case When Qualification='B.E' Then 'B.E' 
         Else Null End UG_Qualification
      , Case When Qualification='M.E' Then 'M.E' 
         When Qualification='MS' Then 'MS' 
         Else Null End PG_Qualification
      , Case When Qualification='B.E' Then CompletedYear 
         Else Null End UG_CompletedYear
      , Case When Qualification='M.E' Then CompletedYear 
         When Qualification='MS' Then CompletedYear 
         Else Null End PG_CompletedYear
   FROM e1
)
GROUP BY EmpCode, Name;


Results:

   EMPCODE NAME       UG_ UG_C PG_ PG_C
---------- ---------- --- ---- --- ----
  10000001 Ram        B.E 2005 M.E 2007
  10000002 Sita       B.E 2003 MS  2005


Setup:

drop table e1;
create table e1 (EmpCode Number(8), Name Varchar2(10)
   , Qualification Varchar2(5), CompletedYear Varchar2(4));
insert all 
   into e1 values (10000001,'Ram','B.E','2005')
   into e1 values (10000001,'Ram','M.E','2007')
   into e1 values (10000002,'Sita','B.E','2003')
   into e1 values (10000002,'Sita','MS','2005')
   into e1 values (10000002,'Sita','Ph.D','2010')
   select * from dual;