Azure Cosmos Synapse Link:SQL视图中对象空字段默认显示为0的原因
Cosmos DB null字段在Synapse视图显示为0的原因
这是Synapse无服务器SQL针对Cosmos DB Well-Defined schema容器的默认类型转换行为导致的:
- 当Cosmos容器开启Well-Defined schema模式后,会强制文档遵循预设的字段数据类型。如果你的null字段被定义为数值类型(int、decimal、float等),Synapse在读取该容器数据时,会严格按照预设的数值类型解析字段。
- 对于数值类型字段,Synapse会将Cosmos中的null值自动替换为对应数值类型的默认值0,而非保留null。如果是字符串、布尔等其他类型的null字段,通常会正常保留null。
验证与处理建议
- 先确认Cosmos容器的schema定义,检查该字段的类型是否为数值型。
- 若需要保留null值,可以在Synapse查询中显式处理,比如使用
SELECT CASE WHEN your_field IS NULL THEN NULL ELSE your_field END FROM your_view,或者调整Cosmos容器的字段类型为允许null的对应类型(如果业务允许)。
内容的提问来源于stack exchange,提问作者David Baker
相关产品推荐
相关产品推荐

