【发布时间】:2018-03-10 20:06:38
【问题描述】:
我想在 Excel 中针对 redshift/postgres 数据库创建一个动态 SQL 查询,以增强包含多列的元素的动态列表。
基本上,我希望能够将 ID 列表复制/键入到 excel 中,如下所示:
Id
------
AAC123
ABB203
AEF678
AEK232
BCE123
BFG304
理想情况下,SQL 查询将使用如下语句:
select *
from table
where ID in ('AAC123', 'ABB203', 'AEF678', 'AEK232', 'BCE123', 'BFG304')
我设法使用以下方法 https://exceleratorbi.com.au/pass-excel-parameter-power-query/ 在 Power Query 中创建了一个与一个属性一起使用的参数
select *
from table
where ID = Parameter
当我将= Parameter 与IN Parameter 交换时,出现以下错误:
表达式错误标记 RightParen 预期
当我改用 IN (Parameter) 时,我得到了同样的错误。
我设法通过在电源查询中将两个表与内部联接合并来创建解决方法。不幸的是,redshift / postgres 中的表有 1000 万行,刷新 25-100 个项目的列表通常需要 5 分钟以上。没有动态 SQL 的相同查询只需要 15 秒。
有没有人建议我需要做些什么不同的事情?
【问题讨论】:
-
可能,您的表中缺少一些索引?
-
什么是参数?一张桌子?逗号分隔列表?一个字符串?
-
@NicoHaase - 不幸的是,我对表格的唯一引用是字符串列。
-
@Parfait我使用了以下方法exceleratorbi.com.au/pass-excel-parameter-power-query
-
@Andreas 向您的数据库添加索引与您稍后在应用程序中访问数据的方式无关。
标签: sql excel powerquery