oracle多行一列值合并 如何将oracle中一条数据拆分成多条?

如何将oracle中一条数据拆分成多条?例如表名为test,数据如下原数据为col1 col2 col3 col4A 1 2 3B 1 2 3然后用如下语句select * from(select c

如何将oracle中一条数据拆分成多条?

例如表名为test,数据如下

原数据为

col1 col2 col3 col4

A 1 2 3

B 1 2 3

然后用如下语句

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

得到的数据就是

A 1

A 2

A 3

B 1

B 2

B 3

oracle两行数据合并为一行数据?

合并可以做到,不过如果不是单一的一条记录,那不就变成笛卡尔积了?比如有两行不同姓名的行,再有两行不同姓名1的行。那么你得到的结果就是4行(也就是笛卡尔积),而且内容全不完全都不同,这个结果应该不是你要的吧。比如前面的两行内容为a a a;b b b(一个字母表示一个字段,这是两行内容)后面两行的内容为c c c;d d d(一个字母表示一个字段,这是两行内容)那么你得到的结果就是 a a a c c c;a a a d d d;b b b c c c;b b b d d d这个四行的结果是你要的么?