请教一条两个表中的SQL语句

vikingleo 2004-10-31 11:35:58
我现在有一个字典表和一个主表,主表内容如下:
A1 B1 C1 D1 E1
01 C G A 001
02 B C B 002

字典表如下:
lbdm lbid lbmc
1 C 苹果
1 D 香蕉
2 G 牙膏
2 C 牙刷
3 A 电锅
3 B 电风扇

在字典表中lbdm 中:1 是主表B1中的对照记录 2 是主表中C1的对照 3 是 主表中D1的对照
现在我想写一条SQL语句筛选出主表中的记录,B1,C1,D1 选出来后记录对应的是字典表中的lbmc 这条语句该怎么写。
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ORARichard 2004-11-01
  • 打赏
  • 举报
回复
select m.a1,a.lbmc b1,b.lbmc c1,c.lbmc d1,m.e1 from main a,(select m.a1,d.lbmc from 字典表 d,main m where m.b1=d.ldid and d.ldbm=1) a,(select m.a1,d.lbmc from 字典表 d,main m where m.b1=d.ldid and d.ldbm=2) b,(select m.a1,d.lbmc from 字典表 d,main m where m.b1=d.ldid and d.ldbm=3) c where (m.a1=a.a1 and m.a1=b.a1 and m.a1=c.a1)
sunnyshine 2004-11-01
  • 打赏
  • 举报
回复
SELECT A1,(select lbmc from 字典表 where 字典表.lbid=主表.B1)B1,
(select lbmc from 字典表 where 字典表.lbid=主表.C1)C1,
(select lbmc from 字典表 where 字典表.lbid=主表.D1)D1 ,E1 FROM 主表
vikingleo 2004-11-01
  • 打赏
  • 举报
回复
要的结果就是:
A1 B1 C1 D1 E1
01 苹果 牙膏 电锅 001
02 蜜桃 牙刷 电风扇 002
ORARichard 2004-11-01
  • 打赏
  • 举报
回复
把你所要的结果列出来
bluelamb 2004-11-01
  • 打赏
  • 举报
回复
可以使用动态的sql语句
declare
col varhcar2(200);
str varhcar2(200);
begin
col='B1';
str='select * from 字典表 where '||col||'=lbdm';
execute immediate str;
end;
col可以用作参数的插入,可以用存储过程实现。
liuyi8903 2004-11-01
  • 打赏
  • 举报
回复
哦.错了 end后面还少个f_bm
liuyi8903 2004-11-01
  • 打赏
  • 举报
回复

create or replace function f_bm(as_bm in varchar2)return varchar2 is
v_mc varchar2(20);
begin
select lbmc into v_mc from 编码表;
return v_mc;
exception
when others them
return as_bm;
end;


调用函数
select f_bm(ldbm) from 主表
liuyi8903 2004-11-01
  • 打赏
  • 举报
回复
像这种用的多的话可以写一个函数来处理.这样方便.不用写那么多的子查询.
lzj033 2004-11-01
  • 打赏
  • 举报
回复
select m.a1,a.lbmc b1,b.lbmc c1,c.lbmc d1,m.e1
from 主表 a,
(select m.a1,d.lbmc from 字典表 d,主表 m where m.b1=d.ldid and d.ldbm=1) b,
(select m.a1,d.lbmc from 字典表 d,主表 m where m.b1=d.ldid and d.ldbm=2) c,
(select m.a1,d.lbmc from 字典表 d,主表 m where m.b1=d.ldid and d.ldbm=3) d
where (a.a1=b.a1 and a.a1=c.a1 and a.a1=d.a1)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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