我是一个Excel sql访问查询,它连接一些字段,然后使用where子句缩小数据集范围。我有很多 where 子句,我想知道是否可以声明一个带有标题/范围的工作表名称作为我的 where 子句,而不是拥有 +100 个 where 字符串的列表。
我的疑问是,
select b.*
from (Select B.*, B.[RF attribute1] & "|" & B.[RF attribute2] & "|" & B.[RF attribute3] & "|" & B.[RF attribute4] as new_field
from [BlackMonday1987$] as B
) as b
where new_field in ('a','b','c')
但是我该如何做类似的事情,该子句将使用工作表 1 上 header1 中的所有字段。我已经尝试了以下操作,不确定是否可以完成或者其逻辑是否正确。
where new_field = [Sheet1$].[header1]
IN 子句不能是动态的。它必须是固定值。
您可以从代码创建完整的 SQL,但仅此而已。
如果有人还在寻找:
Select * from table where VALUE in ( " & Text.Combine(List.Transform(Table1, each "'" & _ & "'"), ",") & " )
您可能需要将隐私设置更改为“始终忽略隐私级别设置”