Azure Logic Apps Get Entities操作查询Table Storage无结果/异常问题
Azure Table Storage 布尔字段空值查询问题(Logic App 场景)
我在Azure Table Storage的表中有一个名为reported的布尔列,样式如下:
我尝试在Azure Logic App中使用Get Entities操作拉取所有满足reported eq null或者reported ne true条件的记录。我一直找不到查询null的正确语法,官方文档中也没有提到空值查询的相关说明。
已尝试的方案
以下查询均返回空结果数组




以下查询返回报错

{ "odata.error": { "code": "InvalidInput", "message": { "lang": "en-US", "value": "One of the request inputs is not valid.\nRequestId:21e33cd2-c002-001d-17eb-8d7c61000000\nTime:2021-08-10T13:27:02.5345973Z" } } }
- 以下查询仅返回表中唯一的true值记录


解决方案
问题根因
- Azure Table Storage 的OData查询中,
null是系统关键字,不需要加单引号,加引号会被识别为普通字符串'null',无法匹配到真正的空值记录。 - 注意字段名完全匹配:你表中定义的字段名为
reported,部分尝试的查询条件中误写为recorded,拼写错误会直接导致查询结果不符合预期。 - 布尔字段的查询逻辑限制:对于Table Storage中不存在的属性,直接写
reported ne true无法匹配这类场景,只有显式判断null或者取反判断才能覆盖。
正确过滤条件
如果你需要拉取所有reported不为true的记录(包含字段为false、字段不存在/值为null的所有场景),直接使用如下条件即可:
not (reported eq true)
如果需要明确拆分两个条件,正确写法如下:
reported eq null or reported eq false
排查建议
如果执行查询后结果依旧不符合预期,可先去掉过滤条件拉取全量数据,确认返回实体的字段名称、类型是否和预期一致,排除字段名大小写不匹配、字段类型定义错误的问题。
内容的提问来源于stack exchange,提问作者SeaDude
相关产品推荐
相关产品推荐

