oracle多行一列值合并 如何將oracle中一條數(shù)據(jù)拆分成多條?
如何將oracle中一條數(shù)據(jù)拆分成多條?例如表名為test,數(shù)據(jù)如下原數(shù)據(jù)為col1 col2 col3 col4A 1 2 3B 1 2 3然后用如下語(yǔ)句select * from(select c
如何將oracle中一條數(shù)據(jù)拆分成多條?
例如表名為test,數(shù)據(jù)如下
原數(shù)據(jù)為
col1 col2 col3 col4
A 1 2 3
B 1 2 3
然后用如下語(yǔ)句
select * from
(select col1,col2 from test
union all
select col1,col3 from test
union all
select col1,col4 from test) as t
order by col1
得到的數(shù)據(jù)就是
A 1
A 2
A 3
B 1
B 2
B 3
oracle兩行數(shù)據(jù)合并為一行數(shù)據(jù)?
合并可以做到,不過(guò)如果不是單一的一條記錄,那不就變成笛卡爾積了?比如有兩行不同姓名的行,再有兩行不同姓名1的行。那么你得到的結(jié)果就是4行(也就是笛卡爾積),而且內(nèi)容全不完全都不同,這個(gè)結(jié)果應(yīng)該不是你要的吧。比如前面的兩行內(nèi)容為a a a;b b b(一個(gè)字母表示一個(gè)字段,這是兩行內(nèi)容)后面兩行的內(nèi)容為c c c;d d d(一個(gè)字母表示一個(gè)字段,這是兩行內(nèi)容)那么你得到的結(jié)果就是 a a a c c c;a a a d d d;b b b c c c;b b b d d d這個(gè)四行的結(jié)果是你要的么?