2017-10-06 32 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