oracle问题?是否可以把一个表中某一个特殊列值相同,但是其余列值不同的数据抓出来???

现在有一张 ryclxx 表,根据表中字段 cljd=‘1’ or cljd=‘2’ 查询。

会查询出这样的结果,例如: r110221 1

和 r110221 2 这两个结果。
我是否可以把 前一列相同 但是cljd不同的数据抓出来呢????

3个回答

以select cljd进行分组就可以了:
columna,clijd
from table
group by cljd;

参考自:MySQL如何优化GROUP BY http://www.data.5helpyou.com/article237.html

嘛,我的做法一般是比较简单些
先按cid分组找出表中条数大于1的cid
select cid form ryclxx group by cid having count(cljd)>1
然后再来匹配查找出列相同,clid不同的数据
select cid,cljd from ryclxx where cid in (select cid form ryclxx group by cid having count(cljd)>1)
其他条件自己加咯

大概思路应该是先查询出有重复字段的列的具体值作为临时表,然后用主表与该临时表,在该列上做一个内连接查询。我给你大概写了下,比如查询用户名不同,密码相同的用户信息:
SELECT t2.username,t2.password
FROM t_user t2 INNER JOIN
(
SELECT t.password
FROM t_user t
GROUP BY t.password
HAVING COUNT(t.password)>1) temp
ON t2.password = temp.password
GROUP BY t2.username
HAVING COUNT(t2.username)=1

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐