-1

早上好,

我有一个独特的要求,我必须根据条件从 Azure 表中对“获取实体”应用过滤器,过滤器来自 HTTP 获取请求。

有两个过滤器 - a 和 b。

如果传递给流的两个过滤器都是空的,则不应用过滤器。如果任一过滤器不为空,则必须将过滤器应用于该列。如果两个过滤器都不为空,则必须将过滤器应用于两列。

是否可以在 ODATA 过滤器查询中应用 If 语句?我似乎找不到一个好的答案。

4

1 回答 1

0

对于这个需求,我们可以在逻辑应用中使用“条件”来实现它。这不是一个聪明的解决方案,但它确实有效。

首先,我使用两个变量来模拟来自 http 请求的两个过滤器。

在此处输入图像描述

然后使用另一个变量来存储结果过滤器。

在此处输入图像描述

现在添加一个“条件”来判断是否filter1不等于“空”。

在此处输入图像描述

如果为真,则添加另一个条件“条件2”来判断是否filter2不等于“空”,并为 设置值filterResult

在此处输入图像描述

如果为false,还添加另一个条件“条件3”来判断是否filter2不等于“空”,并为 设置值filterResult。注意:string(' ')在“设置变量 4”中使用表达式,否则我们将无法保存逻辑应用程序。

在此处输入图像描述

之后,我们可以filterResult在“获取实体”中使用。下面屏幕截图中的表达式是trim(variables('filterResult'))

在此处输入图像描述

于 2021-05-24T02:36:53.377 回答