第一个sql语句可以用如下:
(select a.dhhm,a1.xm1||a1.xxk,a.bz from a,a1 where a.dhhm=a1.dhhm1) union (select a.dhhm,a2.xm2||a2.xxk,a.bz from a,a2 where a.dhhm=a2.dhhm2);不过加入字段多,数据多,且如果包括a1,a2,a3,a4,a5,a6很多字表,是不是速度很慢呢,有没有更好的sql语句呢
(select a.dhhm,a1.xm1||a1.xxk,a.bz from a,a1 where a.dhhm=a1.dhhm1) union (select a.dhhm,a2.xm2||a2.xxk,a.bz from a,a2 where a.dhhm=a2.dhhm2);不过加入字段多,数据多,且如果包括a1,a2,a3,a4,a5,a6很多字表,是不是速度很慢呢,有没有更好的sql语句呢
解决方案 »
- 路过不要错过哦!!帮帮忙写下你的sql语句吧??
- oracle job,每年的第一天1点执行怎么写
- 一个纠结的oracle数据库分页问题
- Oralce在引用java代码时出现symbol : variable Base64 问题
- 创建表的问题.急,急,急!!!!!
- 请教full OUTER join 语法,怎样连接3个表?
- 关于ORACLE树的问题,请高手看看,在线等
- 求解决方案 转化数据库
- 这或许对你们来说是容易的,可是我真的不知道怎么办,请大家帮助我。谢谢
- 创建资料档案库时,出现ORA-12500:TNS:监听程序无法启动专用服务器进程,百分赠!
- DBlink问题,请高人帮忙
- exp oracle 9.2->imp oracle 10.2没反应
from a,
(select DHHM1,wm_concat(xm1||'|'||xxk) xx from (
select DHHM1, XM1, XXK from a1
union all
select DHHM2 DHHM1, XM2 XM1, XXK from a2)
group by DHHM1) b
where a.dhhm=b.dhhm
select DHHM,XM1||'|'||XXK col2,BZ
from a,a1
where a.DHHM=a1.DHHM1
union all
select DHHM,XM2||'|'||XXK col2,BZ
from a,a2
where a.DHHM=a2.DHHM2
--2.先自己写过函数然后再语句中调用
--创建个视图
create or replace view test
as
select DHHM,XM1||'|'||XXK col2,BZ
from a,a1
where a.DHHM=a1.DHHM1
union all
select DHHM,XM2||'|'||XXK col2,BZ
from a,a2
where a.DHHM=a2.DHHM2create or replace function my_concat(var_col varchar2)
return varchar2
is
v_col varchar2(4000);
begin
for cur in (select col2 from test where dhhm=var_col)
loop
v_col:=v_col||cur.col2||';';
end loop;
v_col:=rtrim(v_col,',');
return v_col;
end;--最后从视图中读取数据
select DHHM,my_concat(col2),BZ
FROM TEST;
from
(select dhhm,a1.xm1||'|'||a1.xxk un from a1
union all
select dhhm,xm2||'|'||xxk un from a2) b,a
where a.dhhm=b.dhhm
group by a.dhhm,a.bz