Oracle列转换为行

2014-11-24 18:18:37 · 作者: · 浏览: 4

首先介绍行转换为列,


grades表:


student subject grade


student1 语文 80


student1 数学 70


student1 英语 60


student2 语文 90


student2 数学 80


student2 英语 10


转换为


语文 数学 英语


Student1 80 70 60


Student2 90 80 100


执行语句如下:


假设一个表test,记录如下:


表头  id proc1 proc2 proc3
记录  12 3.4 6.7 12.4


想变成如下格式:
表头 id proc value
记录 12 proc1 3.4
记录 12 proc2 6.7
记录 12 proc3 12.4


方法一:采用union all方法(这种方法会随着字段的增多,变得很长,不推荐)


方法二:采用decode+系统视图USER_TAB_COLS(推荐):