基于 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。
是否可以使用 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。