基于 Excel 列列表筛选 SQL 视图的 Power Query

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

是否可以使用 Power Query 根据 excel table 列中的值列表过滤 SQL 视图?

我 SQL 认为 returns 大量数据(数百万条记录或属性)。用户希望根据 属性 个 ID 的 excel table 列进行过滤。我知道我可以根据视图和电源查询中的 excel 列之间的 属性 ID 进行合并连接。但看起来合并首先引入了数百万条记录,然后在连接中对其进行了过滤。这需要很长时间。用户希望每天动态更改 属性ID 列表和 运行 查询。

本质上,我想在 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 table 折叠成一个 WHERE 子句,其中 ExcelTable 值为像这样的文字:

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

这让我可以在几秒钟内加载数百万行 table。