电源查询以根据Excel列列表过滤SQL视图



是否有一种方法可以根据电源查询在Excel表列中的值列表过滤SQL视图?

我有一个SQL视图,该视图返回了大量数据(数百万记录或属性)。用户希望根据属性ID的Excel表列过滤该量。我知道我可以根据视图和电源查询中的Excel列之间的属性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表折叠到WHERE子句中,并用ExcelTable值作为文字:

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

这使我可以在短短几秒钟内加载一张数百万排的桌子。

最新更新