我自己只懂分三步逐一代入的方法,目前我使用下面的语句,想提高效率整合为用一组语句,请求指点。
1 代入xm
create view mlfa as
select dfhm,xm,thd,jzh4,dh07
from mlf left outer join bmdh
on mlf.dfhm=bmdh.dh
2 代入jzm
create view mlfb as
select dfhm,xm,thd,jzh4,jzm,dh07
from mlfa left outer join bmsz
on mlfa.jzh4=bmsz.jzh4 and thd=bmsz.dz
3 代入gsd
create view mlfb1 as
select dfhm,xm,thd,jzh4,jzm,dh07,gsd
from mlfb left outer join bmgsd
on mlfb.dh07=bmgsd.dh07
原表mlf如下(列名dfhm,thd,jzh4,dh07)
------dfhm -thd -jzh4 --dh07
13011112222 871 2032 1301111
13600007777 874 1395 1360000
15988881111 010 1485 1598888
原表bmdh如下(列名dh,xm)
---------dh --xm
13011112222 张三
13025112035 张风
15988881111 李四
原表bmsz如下(列名dz,jzh4,jzm)
-dz jzh4 jzm
010 1485 西山
871 2032 东风
563 1182 赵庄
原表bmgsd如下(列名dh07,gsd)
---dh07 gsd
1360000 上海
1300001 学校
1301111 湘江
现在想达成的表的结果
------dfhm -thd -jzh4 --dh07 --xm jzm gsd
13011112222 871 2032 1301111 张三 东风 湘江
13600007777 874 1395 1360000 -- -- 上海
15988881111 010 1485 1598888 李四 西山
7 个解决方案
#1
因为三种情况的条件不同,肯定要用类似 case when 之类的语句,估计效率不会比单个替换高.
#2
看楼主语句,怎么是6个表!
#3
不是6个表,就是4个,因为我分三步走,建立了两个视图。
#4
即使效率不比单个替换高,还是想知道答案。因为一步做完,减少了操作次数。谢谢晴天!
#5
听的有点迷糊
#6
这个应该就是一个四表连查。
#7
谢谢小F,我只知道小步快跑,不懂得一气哈成。求指点。
#1
因为三种情况的条件不同,肯定要用类似 case when 之类的语句,估计效率不会比单个替换高.
#2
看楼主语句,怎么是6个表!
#3
不是6个表,就是4个,因为我分三步走,建立了两个视图。
#4
即使效率不比单个替换高,还是想知道答案。因为一步做完,减少了操作次数。谢谢晴天!
#5
听的有点迷糊
#6
这个应该就是一个四表连查。
#7
谢谢小F,我只知道小步快跑,不懂得一气哈成。求指点。