求 实际开发中oracle 行转列 列转行的 sql语句 实例

列转行 Create table test (name char(10),km char(10),cj int) insert test values('张三','语文',80) insert test values('张三','数学',86) insert test values('张三','英语',75) insert test values('李四','语文',78) insert test values('李四','数学',85) insert test values('李四','英语',78) select name, sum(decode(km,'语文',CJ,0)) 语文 , sum(decode(km,'数学',cj,0)) 数学, sum(decode(km,'英语',cj,0)) 英语 from test1 group by name 姓名 语文 数学 英语 张三 80 86 75 李四 78 85 78 行转列 select 姓名, decode(rn, 1, 语文, 2, 数学, 3,英语) from test1 , (select level rn from dual connect by 1=1 and level <=3)我在网上 找的这个 不怎么看的懂,,,select level rn from dual connect by 1=1 and level <=3)
rn 是什么啊 ?dual? 去数据库我对应改了一下执行也不对 ?
有谁能帮指点 一下