请教一个关联问题

[复制链接]
查看11 | 回复1 | 2008-11-14 14:42:19 | 显示全部楼层 |阅读模式
有一个sql语句,我现在是这样实现的
select a.c1 ,

get_zd1(a.c2) ,

get_zd2(a.c3) ,

get_zd3(a.c4)
from t_1 a;
create or replace function get_zd1(code in varchar2) return varchar2 is
Result varchar2(50);
begin
select c into Result from t_zdwhere'A'||code=dm;
return(Result);
end get_zd1;
create or replace function get_zd2(code in varchar2) return varchar2 is
Result varchar2(50);
begin
select c into Result from t_zdwhere'B'||code=dm;
return(Result);
end get_zd2;
create or replace function get_zd3(code in varchar2) return varchar2 is
Result varchar2(50);
begin
select c into Result from t_zd where'C'||code=dm;
return(Result);
end get_zd3;
我知道这样混合使用sql与pl/sql的效率会降低,请教如何用一个sql语句完成同样的功能?
回复

使用道具 举报

千问 | 2008-11-14 14:42:19 | 显示全部楼层
不知道还有没有更好的方法(也许对t_zd进行预处理后在连接可能效率会高一些吧):
select a.c1 , b.c, c.c, d.c
from t_1 a, t_zd b,t_zd c,t_zd d
where b.dm = 'A' || a.c2
and c.dm = 'B' || a.c3
and d.dm = 'C' || a.c4;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行