Foxtable(狐表)用户栏目专家坐堂 → 如何批量把A表数据匹配到B表中


  共有3416人关注过本帖树形打印复制链接

主题:如何批量把A表数据匹配到B表中

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 8:49:00 [显示全部帖子]

什么数据库?内部表、access还是SqlServer?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 9:20:00 [显示全部帖子]

update a set 费用率=b.费用率 from 表A as a inner join 表B as b on  a.一级细分市场=b.一级细分市场 and a.二级细分市场 = b.二级细分市场 and ......

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 9:57:00 [显示全部帖子]

这种没有办法使用一条sql处理。加载数据后使用代码处理,或者到存储过程里使用游标循环A表所有行,逐行拆分品牌处理。

如果有些列还是空的,这就很麻烦了,sql对空值要单独判断的,5个列其中可能有1、2、3、4个列是空值的判断组合至少有4*3*2=24个。建议从业务逻辑上改进,否则就是个坑。

比如二级细分市场可能为空,就有3种不同的判断结果
a.一级细分市场=b.一级细分市场 and a.二级细分市场 = b.二级细分市场
a.一级细分市场=b.一级细分市场 and a.二级细分市场 is null and b.二级细分市场  is null
a.一级细分市场=b.一级细分市场

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 16:50:00 [显示全部帖子]


 回到顶部