如何将某一个字段中两条不同的数据拆成两个字段

时间:2021-04-20 15:05:48
表结构如下:
字段1   字段2   字段3
1          1          2
1          1          3
要把他拆成
字段1   字段2   字段3   字段4
1          1          2           3
这样的结构应该怎么去写语句?

6 个解决方案

#1


select  字段1,字段2,min(字段3) as 字段3,max(字段3) as 字段4 from 表 group by 字段1,字段2

#2


引用 1 楼 chengccy 的回复:
select  字段1,字段2,min(字段3) as 字段3,max(字段3) as 字段4 from 表 group by 字段1,字段2

我的意思是有很多数据,可能1字段1和字段2数据相同,字段3不同,要把字段3中不同的数据找出来,相对应的放成第四个字段

#3


如果数据是:
字段1   字段2   字段3
1          1          2
1          1          3
1          1          4

要返回什么结果?

#4


如果列数未知的话,只能用PLSQL去循环遍历

#5


引用 4 楼 chengccy 的回复:
如果列数未知的话,只能用PLSQL去循环遍历

是的,字段3不同的字段数未知,怎么去遍历?

#6


用 PIVOT 拼动态语句啊, Oracle 11g 行列互换 pivot 和 unpivot 说明
参考 SQL Server 版的  行列转换

#1


select  字段1,字段2,min(字段3) as 字段3,max(字段3) as 字段4 from 表 group by 字段1,字段2

#2


引用 1 楼 chengccy 的回复:
select  字段1,字段2,min(字段3) as 字段3,max(字段3) as 字段4 from 表 group by 字段1,字段2

我的意思是有很多数据,可能1字段1和字段2数据相同,字段3不同,要把字段3中不同的数据找出来,相对应的放成第四个字段

#3


如果数据是:
字段1   字段2   字段3
1          1          2
1          1          3
1          1          4

要返回什么结果?

#4


如果列数未知的话,只能用PLSQL去循环遍历

#5


引用 4 楼 chengccy 的回复:
如果列数未知的话,只能用PLSQL去循环遍历

是的,字段3不同的字段数未知,怎么去遍历?

#6


用 PIVOT 拼动态语句啊, Oracle 11g 行列互换 pivot 和 unpivot 说明
参考 SQL Server 版的  行列转换