奇怪的sql语句问题,大家帮忙看看?

gaolin 2009-04-15 06:19:44
下面的语句怪问题:我把a表的数据插入到b表中,同时通过c表的数据更新b表,a表的条件中clfl 为'1','2','3',但是有时候偶尔会把 clfl is null的数据插入到b表中
INSERT INTO YBXX.YB_FYMATCH
( HOSBH , LX , ZWMC , JJDW , CDXZ , FWXMBM , SRM1 , SRM2 , YBZXDM, YBXZBZ, ZXZT, ZXWYM )
SELECT A.BH, '2', A.MC, D.YBZXDM, A.CLFL, A.YLBZBH,
A.SRM1, A.SRM2, C.YBCLBH, DECODE(C.XY_DJXEBZ, '是','1', '1', '1','0'),
DECODE(C.YBCLBH, NULL, 'A','B'), DECODE(C.YBCLBH, NULL, '', '2')
FROM YLFYB A , YBXX.YB_FYMATCH B, YBXX.YB_CLDIC C, YBXX.YB_DICPP D
WHERE A.CLFL IN ('1','2','3') AND A.FS NOT IN ('1','M','Y','Z','C')
AND D.FLDM = '009'
AND A.BH = B.HOSBH(+)
AND B.HOSBH IS NULL
AND A.YBBM = C.OLDYBBM(+)
AND A.DW = D.HOSMC;
这种问题有时候出现有时候不出现
...全文
59 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿三 2009-04-15
  • 打赏
  • 举报
回复
1.你使用了外连接,有可能会取到a.clfl=null的情况

2.“同时通过c表的数据更新b表”  这部分的SQL语句是怎么写的

改成这样试:

INSERT INTO YBXX.YB_FYMATCH
( HOSBH , LX , ZWMC , JJDW , CDXZ , FWXMBM , SRM1 , SRM2 , YBZXDM, YBXZBZ, ZXZT, ZXWYM )
SELECT A.BH, '2', A.MC, D.YBZXDM, A.CLFL, A.YLBZBH,
A.SRM1, A.SRM2, C.YBCLBH, DECODE(C.XY_DJXEBZ, '是','1', '1', '1','0'),
DECODE(C.YBCLBH, NULL, 'A','B'), DECODE(C.YBCLBH, NULL, '', '2')
FROM
(select * from ylfyb where a.clfl in ('1','2','3') and AND A.FS NOT IN ('1','M','Y','Z','C')) A ,
YBXX.YB_FYMATCH B,
YBXX.YB_CLDIC C,
YBXX.YB_DICPP D
WHERE D.FLDM = '009'
AND A.BH = B.HOSBH(+)
AND B.HOSBH IS NULL
AND A.YBBM = C.OLDYBBM(+)
AND A.DW = D.HOSMC;

17,086

社区成员

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

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