2017-10-06 33 views
1

正如标题所说,我试图按集合中的值过滤SQL表。我试图使用Filter()函数和in公式来实现此目的。PowerApps - 过滤收集列上的SQL表

ClearCollect(NewCollection, Filter('SqlTable', ID in ExistingCollection.ID))

...其中ID是属于 'SQLTABLE' 的一列。

我收到错误“在'操作员的右侧'不是列名称”。我的集合'ExistingCollection'中有数据,并且SqlTable也有数据。

可能的问题可能是Expenses表的大小,它有20k加上行,但是这个过滤器应该返回〜200行的非常小的子集。我在这里遇到5000行限制吗?或者这种过滤不可能?

回答

0

您可以忽略错误消息,因为它不正确。无论如何,这不是一个错误,而是一个蓝色的下划线警告。这意味着查询将不会被委派,因此结果将仅来自SqlTable的前500条记录。

您可以通过在ExistingCollection.ID中包含一个存在于SqlTable的前500条记录中的值来进行测试。

PowerApps文档当前说In运算符是为SQL Server委派的,但实际上它并不作为成员运算符使用。

请参阅this reference的第5项。

该参考文献讨论了Azure,但同样的限制适用于SQL Server。

+0

因此,如果我理解这个权利..我需要过滤我的SqlTable到一个集合,然后才能用'in'进行过滤? – Alex

+0

您可以使用'in'过滤SqlTable,而不将其全部或部分加载到集合中,但您将只接收来自SqlTable的前500行的结果。如果将全部或部分SqlTable加载到集合中,则可以将“in”过滤器应用于集合,而不受限制。但是,主要问题是如何将全部或部分SqlTable加载到集合中。您目前只能通过迭代加载> 500行。它可以完成,但很麻烦。 – Meneghino