早上好,
我有一个独特的要求,我必须根据条件从 Azure 表中对“获取实体”应用过滤器,过滤器来自 HTTP 获取请求。
有两个过滤器 - a 和 b。
如果传递给流的两个过滤器都是空的,则不应用过滤器。如果任一过滤器不为空,则必须将过滤器应用于该列。如果两个过滤器都不为空,则必须将过滤器应用于两列。
是否可以在 ODATA 过滤器查询中应用 If 语句?我似乎找不到一个好的答案。
早上好,
我有一个独特的要求,我必须根据条件从 Azure 表中对“获取实体”应用过滤器,过滤器来自 HTTP 获取请求。
有两个过滤器 - a 和 b。
如果传递给流的两个过滤器都是空的,则不应用过滤器。如果任一过滤器不为空,则必须将过滤器应用于该列。如果两个过滤器都不为空,则必须将过滤器应用于两列。
是否可以在 ODATA 过滤器查询中应用 If 语句?我似乎找不到一个好的答案。
对于这个需求,我们可以在逻辑应用中使用“条件”来实现它。这不是一个聪明的解决方案,但它确实有效。
首先,我使用两个变量来模拟来自 http 请求的两个过滤器。
然后使用另一个变量来存储结果过滤器。
现在添加一个“条件”来判断是否filter1
不等于“空”。
如果为真,则添加另一个条件“条件2”来判断是否filter2
不等于“空”,并为 设置值filterResult
。
如果为false,还添加另一个条件“条件3”来判断是否filter2
不等于“空”,并为 设置值filterResult
。注意:string(' ')
在“设置变量 4”中使用表达式,否则我们将无法保存逻辑应用程序。
之后,我们可以filterResult
在“获取实体”中使用。下面屏幕截图中的表达式是trim(variables('filterResult'))
。