求救,SQL语句写法。

瓜哥makey 2003-02-17 04:30:14
有表t1(field1,field2),t2(id,mc),t3(id,mc),t4(id,mc)
其中t1.feild2中数据结构为表名(t2,t2或t4):id,假设t1中有
4条记录分别为(0,t2:0)(1,t2:1),(2,t3:1),(3,t4:2).我要在select语句
中根据t1.field2中的表名查处id对应的名称mc
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-02-17
  • 打赏
  • 举报
回复
declare
type n_sor is ref cursor;
m_sor n_sor;
v_field1 t1.field1%type;
v_mc t2.mc%type;
cursor t_sor is
select substr(feild2,1,instr(feild2,';')-1) table_name,substr(feild2,instr(feild2,';')+1,1) id from t1;
str varchar2(30);
begin
for v_sor in t_sor loop
v_table:=v_sor.feild2;
str:='select a.field1,b.mc from t1 a,'||v_sor.table_name||' b where a.'||v_sor.id||'='||v_sor.table_name||'.id';
open m_sor for str;
fetch m_sor into v_field1,v_mc;
loop
exit when m_sor%notfound;
dbms_output.put_line(v_field1,v_mc);
end loop;
close m_sor;
end loop;
/
tameless 2003-02-17
  • 打赏
  • 举报
回复
select t1.field2, t2.mc from t1, t2 where substr(t1.field2,1,2) = 't2' and substr(t1.field2,4,1) = t2.id
union
select t1.field2, t3.mc from t1, t3 where substr(t1.field2,1,2) = 't3' and substr(t1.field2,4,1) = t3.id
union
select t1.field2, t4.mc from t1, t4 where substr(t1.field2,1,2) = 't4' and substr(t1.field2,4,1) = t4.id;
supkim 2003-02-17
  • 打赏
  • 举报
回复
用存储过程吧
取出field2的内容然后解码
再拼出sql语句
执行就可以了,
关键是解码

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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