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

这样的想法能实现吗?
表A的数据如下:    
 
name                             sex                             age             monthwage    
'张三 '                     ‘男’                 28                     1000    
'李四 '                     ‘男’                 25                     800    
 
通过什么方法可以转置得到如下结果:    
     
'张三 '                 ‘李四’    
‘男’                     '男 '    
  28                                     25        
  1000                             800    
 
请大家帮一下忙。谢谢了!    


------解决方案--------------------
select name from 表A
union
select sex from 表A
union
select age from 表A
union
select monthwage from 表A

没效率的,数据少的时候用的

------解决方案--------------------
这类事一般是由表现层控件去完成,没必要用SQL来实现.
------解决方案--------------------
行列转换啊
去itpub.net上查查吧
或是google一下
有好多的
------解决方案--------------------
student subject grade
---------------------------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:
select student,sum(decode(subject, '语文 ', grade,null)) "语文 ",
sum(decode(subject, '数学 ', grade,null)) "数学 ",
sum(decode(subject, '英语 ', grade,null)) "英语 "
from table
group by student