(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列有重复值的数据。。。。不知有什么其它查询方法能够解决?
展开
 我来答
micro0369
2014-11-04 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4064万
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式