
有一个学生信息表。包含信息有(学号,班级,姓名,性别,语文老师,数学老师,英语老师) Oracle
现在表里面有重复数据或为空数据。比如:(201,02,张三,女,林语,null,null)(201,02,张三,女,null,林数,null)(201,02,张三,女,n...
现在表里面有重复数据或为空数据。比如:
(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谢谢 展开
(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谢谢 展开
展开全部
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
里面有完整的数据,有多余的数据目前还没有去掉,请参考
展开全部
先假设一下你的表的列名:
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 ,完工,
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 ,完工,
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每一条数据中的后面三个字段中一定只有一个有值其他两个为null吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可将该表与自身做笛卡尔积,并设置前两个字段为主码即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(201,02,张三,女,林语,林数,林英)
(202,02,李四,男,林语,null,林英)
(506,05,王五,男,杨语,杨数,杨英)
(202,02,李四,男,林语,null,林英)
(506,05,王五,男,杨语,杨数,杨英)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不那么简单,得想想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |