王大搻
2016-11-09 01:51
采纳率: 0%
浏览 1.6k

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

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

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • yicp123 2016-11-09 02:09

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

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

    评论
    解决 无用
    打赏 举报
  • Book1346 2016-11-09 02:25

    嘛,我的做法一般是比较简单些
    先按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)
    其他条件自己加咯

    评论
    解决 无用
    打赏 举报
  • 阿德07 2016-11-09 02:27

    大概思路应该是先查询出有重复字段的列的具体值作为临时表,然后用主表与该临时表,在该列上做一个内连接查询。我给你大概写了下,比如查询用户名不同,密码相同的用户信息:
    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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题