簡體   English   中英

強大的查詢功能可基於Excel列列表過濾SQL視圖

[英]Power Query to Filter a SQL view based on an Excel column list

有沒有一種方法可以使用Power Query根據excel表列中的值列表過濾SQL視圖?

我有一個SQL視圖,該視圖返回大量數據(數百萬條記錄或屬性)。 用戶希望基於屬性ID的excel表列進行過濾。 我知道我可以基於視圖和Power查詢中的excel列之間的屬性ID進行合並聯接。 但是合並似乎首先帶來了數百萬條記錄,然后在聯接中對其進行了過濾。 這需要很長時間。 用戶希望每天動態更改propertyID列表並運行查詢。

本質上,我想在Excel Power查詢中創建SQL中的內容

SELECT * FROM SQLViewName 
WHERE PropertyID IN (Select Column from ExcelTable) 

您應該能夠使用List.Contains函數執行此操作。

如果我的ExcelTable

ID
---
436
437
438
439

然后添加這樣的過濾器就可以解決問題:

Table.SelectRows(SQLViewName, each List.Contains(ExcelTable[ID], [PropertyID]))

當我嘗試此操作並在最后應用的步驟中執行“查看本機查詢”時,它會將Excel表折疊為WHERE子句,其中ExcelTable值作為文字,如下所示:

select [_].[PropertyID],
    [_].[OtherColumns]
from [dbo].[SQLViewName] as [_]
where [_].[PropertyID] in (436, 437, 438, 439)

這使我可以在短短幾秒鍾內加載數百萬行的表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM