Excel 表格中有商品的国际条码、品名、价格等信息,如何通过这个 Excel 表来更新启谋数据库中此条码对应商品的价格等信息呢?
大致步骤如下:
- 将 Excel 表数据转换为 SQL 语句
- 启谋数据库中建立临时表
- 执行转换得到的 SQL 语句将外部数据写入临时表
- 执行语句实现多表更新
Excel 转换后的语句大致如下:
insert into tt(aa,bb,cc,dd,ee)values(6926166100924,'个',5.5,8.8,8.4); insert into tt(aa,bb,cc,dd,ee)values(2000031651996,'个',6.5,10.4,10.0); insert into tt(aa,bb,cc,dd,ee)values(6942467451176,'个',3.1,5.0,4.8);
Excel 数据转换为 SQL 语句是有几点要注意:
- 非数字类型的列,比如商品规格、商品名称等要用单引号框起来,否则执行 SQL 语句的时候会出错。(Excel 中没有办法加左边的单引号,不过可以粘贴到 txt 文本文档中后使用替换功能实现。)
- Excel 数据转换为 SQL 语句后将包含很多 tab 分隔符,同样要使用 Notepad++的替换功能批量删除。
这里推荐使用 Notepad++来处理 txt 文本文档,比系统自带的记事本程序好用太多,并且它是开源软件。
update 命令实现多表更新的语句:
update a set a.unit_no=b.bb,a.price=b.cc,a.sale_price=b.dd,a.vip_price=b.ee from bi_t_item_info a,tt b where a.item_subno=b.aa
参考链接:sql 里的 update 实现多表更新