看着简单,就是做不来,选出不是一一对应的,高分送高手

yanleigis 2003-01-16 04:24:26
create table test (a varchar2(3), b varchar2(10));
insert into test values ('1','abc');
insert into test values ('1','abc');
insert into test values ('1','abcd');
insert into test values ('2','as');
insert into test values ('2','asd');
insert into test values ('123','abcd');
insert into test values ('123','abcd');
insert into test values ('123','abcd');
insert into test values ('123','abcd');
commit;
结果应为:
1 abc
1 abcd
2 as
2 asd
...全文
54 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldwain 2003-01-16
  • 打赏
  • 举报
回复
select distinct a, b from test
where a in (
select a from
(select a, b from test group by a, b)
group by a
having count(*) > 1
)
/


===========================
oldwain
---------------------------
http://www.itpub.net/index.php?referrerid=32
http://www.linuxforum.net/
http://www.oraclefan.net/
双子涂鸦 2003-01-16
  • 打赏
  • 举报
回复
123 abcd //不要显示

因为什么这个不显示?
cyberflying 2003-01-16
  • 打赏
  • 举报
回复
你的“一一对应”是这样解释的吗?
假设a和b是满足如下函数关系:
b = f(a),有a可唯一确定b。

如果同一个a可得到不同的b,则定义为不是一一对应的。

如果是这样的话:

SELECT DISTINCT *
FROM test
WHERE a IN (SELECT a FROM test GROUP BY a HAVING MIN(b) <> MAX(b))
liqiangliu 2003-01-16
  • 打赏
  • 举报
回复
标准答案:
select a,b from
(select a,b,count(*) from test
group by a,b
having count(*) <3);
bzszp 2003-01-16
  • 打赏
  • 举报
回复
SQL> select * from e;

AAA BBB
-------------------- ---------
101 1
102 2
103 3
103 43
102 5
1 1
1 1
1 1

已选择8行。
SQL> select * from e,(select * from(select count(a.aaa) num,a.aaa from e a,e b where a.aaa=b.aaa an
d a.bbb=b.bbb
2 group by a.aaa)where num<3) e1 where e.aaa(+)=e1.aaa;

AAA BBB NUM AAA
-------------------- --------- --------- --------------------
101 1 1 101
102 2 2 102
102 5 2 102
103 3 2 103
103 43 2 103

SQL>
cyberflying 2003-01-16
  • 打赏
  • 举报
回复
还是不明白,你的“一一对应”是什么意思?
yanleigis 2003-01-16
  • 打赏
  • 举报
回复
A B
--- ---------
1 abc
1 abcd
123 abcd //不要显示
2 as
2 asd
只有一条的怎么办,就不显示
bzszp 2003-01-16
  • 打赏
  • 举报
回复
是不是去掉多条完全相同的啊?
如果是这样
只有一条的怎么办,也不显示?
bzszp 2003-01-16
  • 打赏
  • 举报
回复
select distinct a,b from test;
penitent 2003-01-16
  • 打赏
  • 举报
回复
不明白
select distinct a,b from table

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧