【问题】
我从一个表中查询出一条数据,数据中有很多字段,例如:
列名:操作人1 操作时间1 操作人2 操作时间2 操作人3 操作时间 3 .............
数据:小明 20140304 小红 20140909 小王 20150101 .............
现在我想要的sql是这样一个实现结果,
小明 20140304
小红 20140909
小王 20150101
......
也就是一行转成多行,包含两列.
求大神给出一个具体的sql,我自己写的个感觉太复杂了,有没什么好的sql能简单解决。用的是oracle 11g
【回答】
如果字段不是很多可以直接纵向union起来,但如果列太多,甚至多个表(列数不同)都要做这样的查询,就比较复杂了。这种时候用SPL写起来比较简单(假定表时只有一行数据):
A | |
1 | =oracle.query("select * from tb1")(1) |
2 | =create(操作人,操作时间) |
3 | >A2.record(A1.array()) |
执行脚本前,将数据保存在数据库的表t