Entradas

Mostrando entradas de julio, 2012

Oracle 10G : Pivotar una tabla

Para simular la función PIVOT (introducida en oracle 11), podemos simularla en Oracle 10g con lo siguiente Partimos de la tabla con la estructura: ( category , year, valor ) Year es el valor que queremos pivotar y tiene valores entre 2003 y 2010. Estos valores habrá que ponerlos a mano SELECT category ,  MAX(DECODE( year ,'2003',valor,NULL))  a2003 ,MAX(DECODE( year ,'2004',valor,NULL)) a2004 ,MAX(DECODE( year ,'2005',valor,NULL)) a2005 ,MAX(DECODE( year ,'2006',valor,NULL)) a2006 ,MAX(DECODE( year ,'2007',valor,NULL)) a2007 ,MAX(DECODE( year ,'2008',valor,NULL)) a2008 ,MAX(DECODE( year ,'2009',valor,NULL)) a2009 ,MAX(DECODE( year ,'2010',valor,NULL)) a2010 FROM tabla where year >= 2003 group by category ; obtendremos una tabla  como category,a2003,a2004,a2005,a2006,a2007,a2008,a2009,a2010