如何仅用1次Excel查询拉取SQL全量数据并拆分生成各机器对应子表
Excel单次拉取SQL全量数据后按Machine字段拆分多子表的操作方案
完全可以实现,不需要维护多条独立的库侧筛选查询,用Excel自带的Power Query功能就能完成全量拉取后本地拆分,操作步骤如下:
1. 拉取全量基础数据
- 按原有路径进入「Get Data -> From Database -> From SQL Server Database」,连接对应SQL Server实例
- 查询语句输入全量拉取代码
select * from dbo.tablename,选择加载到Power Query编辑器,不要直接加载到工作表
2. 按Machine字段生成分组
- 在Power Query编辑器的全量表中,选中
Machine列 - 右键点击「分组依据」,在弹出的配置框中设置:
- 分组依据列:
Machine - 新列名:可自定义为
子表数据 - 操作:选择「所有行」
- 确认后会生成一张二元结果表,第一列是所有去重后的Machine值,第二列是对应Machine关联的全部业务数据
- 分组依据列:
3. 生成独立子表并加载
- 右键点击二元结果表的
Machine列,选择「作为新查询添加」,Power Query会自动为每个不同的Machine值生成独立查询,每个查询默认已经筛选好对应Machine的全量数据 - 你可以按需重命名各子查询,右键单个查询选择「加载到」,指定对应工作表的存放位置即可
优化说明
- 后续源SQL表数据更新时,只需要刷新一次全量基础查询,所有拆分后的子表会同步更新数据,不需要逐个刷新7条独立查询
- 如果后续Machine值有新增/减少,全量查询刷新后重新执行一次分组操作即可完成子表同步,不需要重新编写带where条件的SQL语句
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

