好难啊!!脑袋都想破了!
例如数据结构:
SN Data Item
A 1 XX1
A 2 XX2
A 3 XX3
A 4 XX4
B 5 XX1
B 6 XX2
B 7 XX3
B 8 XX4期望的结果:
SN Data1 Item1 Data2 Item2 Data3 Item3 Data4 Item4
A 1 XX1 2 XX2 3 XX3 4 XX4
B 5 XX1 6 XX2 7 XX3 8 XX4
例如数据结构:
SN Data Item
A 1 XX1
A 2 XX2
A 3 XX3
A 4 XX4
B 5 XX1
B 6 XX2
B 7 XX3
B 8 XX4期望的结果:
SN Data1 Item1 Data2 Item2 Data3 Item3 Data4 Item4
A 1 XX1 2 XX2 3 XX3 4 XX4
B 5 XX1 6 XX2 7 XX3 8 XX4
解决方案 »
- Oracle作业调用
- 数据库查询出现空值
- oracle字符集问题 ORA-12899: 列 "KF_NWPN"."T_ORG_HOR"."ORGJC" 的值太大 (实际值: 36, 最大值: 30)
- Oralce中集合数据结构的比较
- 怎么用pl/sql来读取csv文件
- 明天就考试啦~帮帮忙~
- 急请大虾:请问连接ORACLE时分页程序怎么写?
- 帮我看看下面这个update语句,在SQL SERVER里可以,在ORACLA里怎么不行??
- 关于insert时,如何自动插入序列号?谢谢拉~~~~~
- 游标的使用。急急急。电脑前死等。请大神帮助。
- flashback table时提示ora-00604错误
- Oracle 对同一条记录并发执行for update
先计算出每个SN的最大行数,然后再行转列,生成所需的结果。
SELECT *,
ROW_NUMBER() OVER(PARTITION BY sn ORDER BY data)
FROM table1
)
SELECT sn,
MAX(DECODE(rn, 1, data,null)) as data1,
MAX(DECODE(rn, 1, item,null)) as item1,
MAX(DECODE(rn, 2, data,null)) as data2,
MAX(DECODE(rn, 2, item,null)) as item2,
MAX(DECODE(rn, 3, data,null)) as data3,
MAX(DECODE(rn, 3, item,null)) as item3,
MAX(DECODE(rn, 4, data,null)) as data4,
MAX(DECODE(rn, 4, item,null)) as item4
FROM t
GROUP BY sn
ORDER BY sn
select * from Test_table
pivot ( min(data) as d,min(item) as m
for (item) in ('XX1' as item_1,'XX2' as item_2,'XX3' as item_3,'XX4' as item_4))
order by sn;