Azure Logic App中OData过滤:保留无resp=yes的非空ID分组数据
Azure Logic App OData 过滤解决方案
最终过滤表达式
将以下表达式中的YourEntityName替换为你实际使用的实体名称:
mID ne null and iID ne null and not exists(YourEntityName?$filter=mID eq $it/mID and resp eq 'yes')
表达式拆解
- 基础非空过滤:
mID ne null and iID ne null直接过滤掉mID或iID为空的行,这部分你之前的写法是正确的。 - 排除存在resp=yes的分组:
not exists(YourEntityName?$filter=mID eq $it/mID and resp eq 'yes')的作用是:- 针对当前行的
mID(用$it/mID指代),查询整个实体中是否存在同mID且resp='yes'的行 - 用
not取反,只保留那些所属mID分组中完全没有resp=yes行的数据
- 针对当前行的
为什么之前的any运算符没生效
any通常用于实体的导航集合属性(比如某订单下的所有明细行),而不是跨整个实体做分组级别的检查。要实现分组排除,必须用exists子查询来判断整个实体中是否存在符合条件的同组行。
内容的提问来源于stack exchange,提问作者adam_szmyt
相关产品推荐
相关产品推荐

