使用MS Query从SQL Server拉取数据时decimal类型转常规类型无法计算怎么办
解决方案
- 存储过程端优化
在存储过程开头新增SET NOCOUNT ON语句,避免返回的行数统计信息干扰Excel对结果集字段类型的识别;数值类字段输出时显式指定精度,例如将SELECT price FROM table改写为SELECT CAST(price AS DECIMAL(18,2)) AS price FROM table,同时确保字段输出没有拼接任何字符串类字符(包括空格、千分位符号等)。 - MS Query配置修改
打开当前查询的MS Query编辑器,右键选中识别错误的数值字段,选择「编辑列」,手动将数据类型设置为「小数/数值」,关闭自动类型检测后重新拉取数据。 - Excel端强制转换
Excel修改单元格格式仅对修改后新输入的内容生效,已导入的文本类数值不会自动转换。你可以选中目标列,点击顶部菜单栏「数据」-「分列」,前两步直接点击「下一步」,第三步列数据格式选择「数值」,点击完成即可批量转换为可计算的数值类型。 - 改用Power Query固化类型
将现有MS Query查询迁移到Power Query编辑器中,在编辑器内直接修改对应字段的数据类型为「小数」,设置完成后上载到Excel,后续刷新数据时会自动保留指定的数值类型,不会再被默认改为常规文本。
内容的提问来源于stack exchange,提问作者ChefJ
相关产品推荐
相关产品推荐

