|
最初由 lgx_008124 发布
[B]我的想法是这样的:用列转换为行把它们连接起来.
首先增加一个列放相同的值在列转行时分组时用,最终表(bb)数据如下:
SQL> select * from bb;
ID NAME FLAG
---------- ---------- ----------
1 aaa 1
1 bbb 2
1 ccc 3
1 ddd 4
1 eee 5
1 fffff 6
SQL> select id,max(decode(name,'aaa',flag,0))
2 ||max(decode(name,'bbb',flag,0))
3 ||max(decode(name,'ccc',flag,0))
4 ||max(decode(name,'ddd',flag,0))
5 ||max(decode(name,'eee',flag,0))
6 ||max(decode(name,'fffff',flag,0)) result
7 from bb group by id;
ID RESULT
---------- ----------------------------------------
1 123456 [/B]
可以, 不过这样做的前提条件是你要清楚所有name的取值情况才可以这样做,
而且希望name的取值尽可能的少一点, 要不然连接的可就长了 |
|