【问题标题】:PowerApps - Filtering SQL table on Collection ColumnPowerApps - 在集合列上过滤 SQL 表
【发布时间】:2018-03-18 15:29:24
【问题描述】:

正如标题所说,我正在尝试按集合中的值过滤 SQL 表。我正在尝试使用 Filter() 函数和 in 公式来实现这一点。

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

...其中 ID 是属于“SqlTable”的列。

我收到错误消息“'in' 运算符的右侧不是列名”。我的 Collection 'ExistingCollection' 里面有数据,SqlTable 也有数据。

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

【问题讨论】:

    标签: sql-server powerapps


    【解决方案1】:

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

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

    PowerApps 文档目前说 in 运算符是为 SQL Server 委派的,但实际上它并没有用作成员运算符。

    请参阅this reference 的第 5 点。

    该参考资料谈到了 Azure,但同样的限制也适用于 SQL Server。

    【讨论】:

    • 所以如果我理解这一点.. 我需要先将我的 SqlTable 过滤到一个集合中,然后才能用 'in' 过滤它?
    • 您可以使用 'in' 过滤 SqlTable 而无需将其全部或部分加载到集合中,但您只会收到来自 SqlTable 前 500 行的结果。如果将全部或部分 SqlTable 加载到集合中,则可以将“in”过滤器应用到集合中而不受限制。但是,主要问题是如何将全部或部分 SqlTable 加载到集合中。您目前只能通过迭代加载 > 500 行。可以做,但是比较乱。
    猜你喜欢
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2020-05-23
    • 2017-10-29
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    相关资源
    最近更新 更多