(oracle) sql 如何查出一张表中同一列 值不相等的行 30
sql如何查出一张表中,根据A列值相同但B列值不相等的所有行比如一个班上有同名同姓的学生表class:namenumbersex张三101男张三102男使用语句selec...
sql 如何查出一张表中,根据A列值相同但B列值不相等的所有行
比如一个班上有同名同姓的学生表class:
name number sex
张三 101 男
张三 102 男
使用语句 select name, number from class group by name, number having count(name)>1查不出这种 同姓名但学号不同的数据,请问应该怎么写
谢谢@micro0369,不过你这个写法好像只能解决我上面所举的例子:子查询查出所有 有重复数据的name列的值,然后再在class表根据查的name列的值查出所有数据(包括number值也相同的数据),只筛选出了有重复数据的所有行,但name值相同number值也相同的数据并没有剔除(我只想要name值相同但number值不同的那些数据), 这并不是我想要的答案。因为数据库表有几万条数据,其中A列有重复值的数据有上千条,在这上千条数据中,大部分B列的值都是相同的,只有几十条是不同的,所以我想要查出 只有A列值相同但B列值不相等的数据这几十条数据,如果按你那样写的话 会查出所有A列有重复值的数据。。。。不知有什么其它查询方法能够解决? 展开
比如一个班上有同名同姓的学生表class:
name number sex
张三 101 男
张三 102 男
使用语句 select name, number from class group by name, number having count(name)>1查不出这种 同姓名但学号不同的数据,请问应该怎么写
谢谢@micro0369,不过你这个写法好像只能解决我上面所举的例子:子查询查出所有 有重复数据的name列的值,然后再在class表根据查的name列的值查出所有数据(包括number值也相同的数据),只筛选出了有重复数据的所有行,但name值相同number值也相同的数据并没有剔除(我只想要name值相同但number值不同的那些数据), 这并不是我想要的答案。因为数据库表有几万条数据,其中A列有重复值的数据有上千条,在这上千条数据中,大部分B列的值都是相同的,只有几十条是不同的,所以我想要查出 只有A列值相同但B列值不相等的数据这几十条数据,如果按你那样写的话 会查出所有A列有重复值的数据。。。。不知有什么其它查询方法能够解决? 展开
1个回答
展开全部
select * from class c1,
(select name,count(name)
from class
group by name
having count(name)>1
) c2
where c1.name = c2.name
更多追问追答
追问
谢谢你的回答,但由于字数太多无法追问,我就把疑问写在了‘‘问题补充’’那里,可否再看一下?
追答
这样呢?
select c1.name,c1.number from class c1, (select name,count(name) from class group by name having count(name)>1 ) c2 where c1.name = c2.name group by c1.name,c1.number having count(1) = 1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询