Code.GeekInterview.com
  I am new, Sign me up!
 
Code Samples Oracle
 

Converting Rows to Columns


Code ResourceAuthor: Jim.Anderson  

Difficulty Level: Intermediate

Published: 16th Jul 2008   Read: 8819 times  

Filed in: Oracle
Add Comment


 


Converting Rows to Columns in Oracle. There are couple of ways you can do it.

 


Sample Code
  1. CREATE TABLE prod_sales (
  2.   location VARCHAR2(30),
  3.   prod_name VARCHAR2(20),
  4.   sales_amt NUMBER)
Copyright GeekInterview.com




Sample Code
  1. BEGIN
  2. INSERT INTO prod_sales VALUES(
  3. 'NY','PIZZA',500);
  4. INSERT INTO prod_sales VALUES(
  5. 'NY','BURGER',300);
  6. INSERT INTO prod_sales VALUES(
  7. 'NY','SALAD',250);
  8. INSERT INTO prod_sales VALUES(
  9. 'NJ','PIZZA',250);
  10. INSERT INTO prod_sales VALUES(
  11. 'NJ','BURGER',310);
  12. INSERT INTO prod_sales VALUES(
  13. 'NJ','SALAD',395);
  14. INSERT INTO prod_sales VALUES(
  15. 'CT','PIZZA',900);
  16. INSERT INTO prod_sales VALUES(
  17. 'CT','BURGER',175);
  18. INSERT INTO prod_sales VALUES(
  19. 'CT','SALAD',150);
  20. END;
Copyright GeekInterview.com





Sample Code
  1. SELECT * FROM prod_sales
Copyright GeekInterview.com





Sample Code
  1. SELECT location , SUM(pizza_amt) AS pizza_sales,SUM(burger_amt) AS burger_sales,SUM(salad_amt) AS salad_sales
  2. FROM (
  3. SELECT location , DECODE(prod_name,'PIZZA',sales_amt,0) pizza_amt,
  4.                   DECODE(prod_name,'BURGER',sales_amt,0) burger_amt,
  5.                                   DECODE(prod_name,'SALAD',sales_amt,0) salad_amt
  6. FROM prod_sales)
  7. GROUP BY location
Copyright GeekInterview.com



This can be used as an alternate to decode for changing rows to cols


Sample Code
  1. SELECT  location,SUM(pizza) AS pizza , SUM(burger) AS burger , SUM(salad) AS salad
  2. FROM (
  3. SELECT location ,
  4. CASE
  5. WHEN prod_name = 'PIZZA' THEN sales_amt ELSE 0 END  AS pizza ,
  6. CASE
  7. WHEN prod_name = 'BURGER' THEN sales_amt ELSE 0 END  AS burger,
  8. CASE
  9. WHEN prod_name = 'SALAD' THEN sales_amt ELSE 0 END  AS salad
  10. FROM prod_sales)
  11. GROUP BY location;
Copyright GeekInterview.com



Next Article: Oracle Database Growth Report


 

Latest Code Samples

 

Popular Code Samples

 

Related Code Samples

 

Post Comment


Members Please Login

Name:  Email: (Optional. Used for Notification)

Title:
 
Comment:
Validation Code: <=>  (Enter this code in text box)





Popular Coders

# Coder NameHits
1. jamesravid16251
2. Jim.Anderson8820
3. krishnaindia20078125
4. Mohit Sharma6745
5. Beena5366
6. jainsourabh24058
7. SriramKrishna1853
8. Satheesh1774

Active Coders

Refined Tags

 

Sponsored Links

 
About Us -  Privacy Policy -  Terms and Conditions -  Contact  

Copyright © 2005 - 2009 GeekInterview.com. All Rights Reserved

Page copy protected against web site content infringement by Copyscape