使用CData连接器查询Google Spreadsheet时如何将#N/A转为NULL值
CData连接器处理Google Spreadsheet #N/A转NULL最优方案
方案1:连接器内置参数配置(最优选择)
该方案性能损耗最低,无需修改原始表格或查询语句,适配所有基于该连接的查询场景。
操作步骤:
- 进入CData Google Sheets连接器的配置界面,打开高级设置栏
- 找到配置项
TreatErrorValuesAsNull,将值设置为True,此时所有表格错误值(包含#N/A、#DIV/0!、#VALUE!等)都会被自动识别为NULL - 如果仅需要单独处理#N/A、保留其他错误值的返回,可额外配置
ErrorValuesToIgnore参数,填写值为#N/A即可 - 保存配置后重建连接,后续所有查询返回的#N/A都会自动映射为标准NULL值
方案2:查询语句转换(备选)
如果没有权限修改连接器全局配置,可在SQL查询中通过转换函数实现需求:
仅处理#N/A的简化写法:
SELECT NULLIF(目标字段名, '#N/A') AS 目标字段名, -- 其余字段正常声明 FROM 对应Google Sheet工作表名
需要同时处理多种错误值的扩展写法:
SELECT CASE WHEN 目标字段名 IN ('#N/A', '#DIV/0!', '#VALUE!') THEN NULL ELSE 目标字段名 END AS 目标字段名 FROM 对应Google Sheet工作表名
该方案灵活性更高,可针对单张表、单个字段做定制化处理,缺点是需要修改查询逻辑,大数据量查询时会产生少量额外计算开销。
内容的提问来源于stack exchange,提问作者Saqib Ali
相关产品推荐
相关产品推荐

