现在表里面有重复数据或为空数据。比如:
(201,02,张三,女,林语,null,null)
(201,02,张三,女,null,林数,null)
(201,02,张三,女,null,null,林英)
(202,02,李四,男,林语,null,null)
(202,02,李四,男,null,null,林英)
(506,05,王五,男,杨语,null,null)
(506,05,王五,男,null,杨数,null)
(506,05,王五,男,null,null,杨英)
等等。
这里有部分数据是重复的。如何将这些语句进行合并?变成
(201,02,张三,女,林语,林数,林英)
(202,02,李四,男,林语,null,林英)
(506,05,王五,男,杨语,杨数,杨英)
想着用union来着,可是不行,求各位帮忙哈,不胜感激。Oracle中sql查询。
希望有具体查询语句,O(∩_∩)O谢谢
有一个学生信息表。包含信息有(学号,班级,姓名,性别,语文老师,数学老师,英语老师) Oracle
答案:6 悬赏:10
解决时间 2021-04-28 02:12
- 提问者网友:騷女、無惡不作
- 2021-04-27 01:38
最佳答案
- 二级知识专家网友:哭不代表软弱
- 2021-04-27 02:34
create table stu_info (
stu_id number(10),
stu_grade number(2),
stu_name varchar2(100),
stu_sex varchar2(10),
a_teacher varchar2(100),
b_teacher varchar2(100),
c_teacher varchar2(100) )
select * from stu_info
--
select distinct a.stu_id,a.stu_grade,a.stu_name,a.stu_sex,
nvl(a.a_teacher,nvl(b.a_teacher,c.a_teacher)) aaa,
nvl(a.b_teacher,nvl(b.b_teacher,c.b_teacher)) bbb,
nvl(a.c_teacher,nvl(b.c_teacher,c.c_teacher)) ccc
from stu_info a, stu_info b, stu_info c
where a.stu_id=b.stu_id
and a.stu_id=c.stu_id
里面有完整的数据,有多余的数据目前还没有去掉,请参考
stu_id number(10),
stu_grade number(2),
stu_name varchar2(100),
stu_sex varchar2(10),
a_teacher varchar2(100),
b_teacher varchar2(100),
c_teacher varchar2(100) )
select * from stu_info
--
select distinct a.stu_id,a.stu_grade,a.stu_name,a.stu_sex,
nvl(a.a_teacher,nvl(b.a_teacher,c.a_teacher)) aaa,
nvl(a.b_teacher,nvl(b.b_teacher,c.b_teacher)) bbb,
nvl(a.c_teacher,nvl(b.c_teacher,c.c_teacher)) ccc
from stu_info a, stu_info b, stu_info c
where a.stu_id=b.stu_id
and a.stu_id=c.stu_id
里面有完整的数据,有多余的数据目前还没有去掉,请参考
全部回答
- 1楼网友:悲观垃圾
- 2021-04-27 07:44
不那么简单,得想想
- 2楼网友:為→妳鎖鈊
- 2021-04-27 07:32
可将该表与自身做笛卡尔积,并设置前两个字段为主码即可。
- 3楼网友:山鬼偶尔也合群
- 2021-04-27 06:52
每一条数据中的后面三个字段中一定只有一个有值其他两个为null吗
- 4楼网友:茫然不知崩溃
- 2021-04-27 05:17
(201,02,张三,女,林语,林数,林英)
(202,02,李四,男,林语,null,林英)
(506,05,王五,男,杨语,杨数,杨英)
- 5楼网友:猎杀温柔
- 2021-04-27 03:54
先假设一下你的表的列名:
column1,... column7
(201,02,张三,女,林语,null,null),
表名为:tableName
语句为:
select column1,column2,column3, column4, max(column5) as column5,max(column6) as column 6,max(column7) as column7 from tableName group by column1, column2, column3,column4
Ok ,完工,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息