中易网

有一个学生信息表。包含信息有(学号,班级,姓名,性别,语文老师,数学老师,英语老师) Oracle

答案:6  悬赏:10  
解决时间 2021-04-28 02:12
  • 提问者网友:騷女、無惡不作
  • 2021-04-27 01:38
现在表里面有重复数据或为空数据。比如:
(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谢谢
最佳答案
  • 二级知识专家网友:哭不代表软弱
  • 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

里面有完整的数据,有多余的数据目前还没有去掉,请参考
全部回答
  • 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 ,完工,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息