我也A,B 两张表。A,B两表通过A.caller=B.fld_mobile字段关联。
结果我B表中存在重复B.fld_mobile,导致查询出来的结果重复很多显示。select A.*,B.kind from A,b
where A.caller=B.fld_mobile --B表重复了,导致本来应该只显示一条结果显示了多条例如A表有一个‘110’,B表存在10个‘110’,结果匹配显示出来的就只有10条数据!!!
请问怎么才能做到匹配的时候只显示一个????
结果我B表中存在重复B.fld_mobile,导致查询出来的结果重复很多显示。select A.*,B.kind from A,b
where A.caller=B.fld_mobile --B表重复了,导致本来应该只显示一条结果显示了多条例如A表有一个‘110’,B表存在10个‘110’,结果匹配显示出来的就只有10条数据!!!
请问怎么才能做到匹配的时候只显示一个????
解决方案 »
- Oracle 11g 默认安装带来的用户名/密码有哪些?
- 一条查询SQL语句的问题!
- 我想把B表中的fristname,lastname字段插到A表中的fristname,lastname字段中,咋办?
- 如何动态汇总下级数据啊
- 请教一个增量备份的方法
- ORacel行列转换问题
- 请求肯定答案oracle10g连接到ora8.17有问题吗?
- 9i,使用manager console,用登录到management server,在managerment server中填写了我机器的ip或机器名,用sysman/oem_temp,提示我输入
- 一个过程不能重建
- 为何select * 就没有用到索引?
- 下面存储过程的错误
- 動態的sql該如何寫?簡單的
where A.caller=B1.fld_mobile;
这样不行,fld_mobile重复 了,但是kind不重复。这样组合问题还是存在
SQL> with A as
2 (
3 select 110 caller from dual
4 )
5 ,B as
6 (
7 select 110 fld_mobile,'A' kind from dual union all
8 select 110 fld_mobile,'B' kind from dual union all
9 select 110 fld_mobile,'C' kind from dual union all
10 select 110 fld_mobile,'D' kind from dual union all
11 select 110 fld_mobile,'E' kind from dual union all
12 select 110 fld_mobile,'F' kind from dual union all
13 select 110 fld_mobile,'G' kind from dual union all
14 select 110 fld_mobile,'H' kind from dual union all
15 select 110 fld_mobile,'I' kind from dual union all
16 select 110 fld_mobile,'J' kind from dual
17 )
18 select distinct A.*,wm_concat(b.kind)over(partition by A.caller) from A,B
19 where A.caller=B.fld_mobile
20 / CALLER WM_CONCAT(B.KIND)OVER(PARTITIO
---------- --------------------------------------------------------------------------------
110 A,B,C,D,J,F,G,H,I,ESQL>