是否有一种方法可以根据电源查询在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)
这使我可以在短短几秒钟内加载一张数百万排的桌子。