日期:2014-05-17  浏览次数:20484 次

sql 行转换为列的问题
我想把三个查询出来的结果进行横向拼接,
这三个查询结果最多有一个或没有,
例如:
查询1:select a,b,c from tb where a='2011'
      结果:
              a     b   c
           2011  yy  zz

查询2:select a,b,c from tb where a='2012'
      结果:无


查询3:select a,b,c from tb where a='2013'
      结果:
              a     b   c
           2013  ee  rr
想要这样的结果:
a1    b1  c1  a2     b2    c2    a3    b3  c3
2011  yy  zz  null  null  null   2013  ee  rr
已想了好几天了,试了好多方法,求解!!!!!             
------解决方案--------------------

select * from (select a,b,c from tb where a='2011')a left join 
(select a,b,c from tb where a='2012')b on 1=1 left join 
(select a,b,c from tb where a='2013')c on 1=1