能否不使用ANY函数将指定嵌套SQL查询转换为OData查询?
可行方案(无需ANY函数)
你的SQL逻辑是筛选出从未出现在resp非空记录中的mid,同时从未出现在resp非空记录中的iid,再取去重后的mid和iid。由于Azure Logic Apps不支持OData的ANY函数,可以通过以下两步实现:
步骤1:获取需要排除的ID集合
先分别查询得到所有resp非空的mid和iid集合,将结果保存为Logic Apps变量:
- 获取非空
resp的mid集合:test_table?$select=mid&$filter=resp ne null&$distinct=true - 获取非空
resp的iid集合:test_table?$select=iid&$filter=resp ne null&$distinct=true
步骤2:筛选符合条件的记录
使用步骤1的变量作为过滤条件,查询目标记录并去重:
test_table?$select=mid,iid&$filter=resp eq null and mid not in (@variables('nonNullRespMids')) and iid not in (@variables('nonNullRespIids'))&$distinct=true
说明
这种方式避开了ANY函数,通过拆分逻辑+变量存储排除集合的方式实现原SQL的查询效果。受限于Logic Apps的OData连接器能力,分步骤是最稳妥的替代方案。
内容的提问来源于stack exchange,提问作者adam_szmyt
相关产品推荐
相关产品推荐

