这样需要如何写sql
a表列1,列2
1,55
2,80
b表
列1 列2
1 wss
1 三
2 四
2 千万
a表.列1 = b表.列1想得到结果,三列
1 55 wss 三
2 80 四 千万
a表列1,列2
1,55
2,80
b表
列1 列2
1 wss
1 三
2 四
2 千万
a表.列1 = b表.列1想得到结果,三列
1 55 wss 三
2 80 四 千万
解决方案 »
- 权限问题
- oracle 动态调用存储过程,返回游标类型
- java程序调用oracle pl-sql存储过程
- 求教导 不知道为什么
- 想开发一个数据库性能监控软件,用java可以实现要求吗?给些建议吧!谢谢!
- 求PROCEDURE中SELECT.....INTO ARRAY 的具体用法
- 100分求助:在ORACLE中如何打印表名,主健字段名,外键字段名和统计主健最大值?
- 为什么Oracle 9i for Linux中表的使用空间不能自动扩展
- 求救!在配置ORACLE的监听的错误
- ORA-01950: 表空间'BUSSTAtIC'中无权限,在线等待
- 执行存储过程报错,报对象XXX.proc 无效
- 请教一个动态性能视图问题
上面的t1和t2只是构建临时表,你只需要用下面的SQL即可,你可以直接将t1和t2直接替换成你的表with t1 as
(select 1 c1, 55 c2 from dual union all select 2 c1, 80 c2 from dual),
t2 as
(select 1 c1, 'wss' c2
from dual
union all
select 1 c1, 'san'
from dual
union all
select 2 c1, 'si'
from dual
union all
select 2 c1, 'qianwang'
from dual)
select t1.c1, t1.c2, t3.c3
from t1,
(select c1, replace(to_char(wm_concat(c2)), ',', ' ') c3
from t2
group by c1) t3
where t1.c1 = t3.c1;
表2有上万条以上(select 1 c1, 'wss' c2 from dual union all select 1 c1, 'san' from dual union all select 2 c1, 'si' from dual union all select 2 c1, 'qianwang' from dual) 按你这样不是要写............
t1 -> a
t2 -> b
select t1.c1, t1.c2, t3.c3
from t1,
(select c1, replace(to_char(wm_concat(c2)), ',', ' ') c3
from t2
group by c1) t3
where t1.c1 = t3.c1;