是否有一种方法可以使用Power Query基于excel表列中的值列表过滤SQL视图?
我有一个SQL视图,该视图返回大量数据(数百万条记录或属性)。用户希望基于属性ID的excel表列进行过滤。我知道我可以基于视图和Power查询中的excel列之间的属性ID进行合并联接。但是合并似乎首先带来了数百万条记录,然后在联接中对其进行了过滤。这需要很长时间。用户希望每天动态更改propertyID的列表并运行查询。
本质上,我想在Excel中创建电源查询 SQL中有什么
SELECT * FROM SQLViewName
WHERE PropertyID IN (Select Column from ExcelTable)
答案 0 :(得分:2)
您应该可以使用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)
这使我能够在几秒钟内加载数百万行的表。