where 条件为特定的 Excel 工作表范围

问题描述 投票:0回答:2

我是一个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]
sql excel ms-access
2个回答
0
投票

IN 子句不能是动态的。它必须是固定值。

您可以从代码创建完整的 SQL,但仅此而已。


0
投票

如果有人还在寻找:

  1. 将表范围添加到 powerQuery 编辑器:数据 - 来自表/范围
  2. 转换 - 转换为列表 - 名称 =“Table1”
  3. 新源 - 来自数据库 - 来自 SQL - 高级 - SQL 语句 - 添加您的查询
  4. 右键单击新查询 - 高级编辑器
  5. 使用
    Select * from table where VALUE in  ( " & Text.Combine(List.Transform(Table1, each "'" & _ & "'"), ",") & " )
  6. 插入您的列表

您可能需要将隐私设置更改为“始终忽略隐私级别设置”

© www.soinside.com 2019 - 2024. All rights reserved.