Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用WHERE子句的值范围进行查询?_Sql_Google Sheets - Fatal编程技术网

Sql 使用WHERE子句的值范围进行查询?

Sql 使用WHERE子句的值范围进行查询?,sql,google-sheets,Sql,Google Sheets,我有一个谷歌电子表格,我想运行一个查询功能。但是我希望WHERE语句检查一系列值。我基本上是在寻找在SQL中使用的语句-在Google电子表格中的等价物是什么?所以现在我有: =QUERY(Sheet1!A3:AB50,"Select A,B, AB WHERE B='"& G4 &"'") 这就行了。但我真正需要的是: =QUERY(Sheet1!A3:AB50,"Select A,B, AB WHERE B='"& G4:G7 &"'") 当然,这种说法是

我有一个谷歌电子表格,我想运行一个
查询
功能。但是我希望
WHERE
语句检查一系列值。我基本上是在寻找在SQL中使用
语句-在Google电子表格中的
等价物是什么?所以现在我有:

=QUERY(Sheet1!A3:AB50,"Select A,B, AB WHERE B='"& G4 &"'")
这就行了。但我真正需要的是:

=QUERY(Sheet1!A3:AB50,"Select A,B, AB WHERE B='"& G4:G7 &"'")

当然,这种说法是失败的。如何根据一系列值获取where?这些都是文本值,如果有区别的话。

虽然我现在还没有找到完美的答案,但我可以找到解决问题的方法,可以在少量数据中使用(希望这里是这样:))

第一步:您应该创建一个“辅助单元格”,将G4:G7单元格与“|”字符连接起来:

=连接(G3,“|”,G4,“|”,G5,“|”,G6,“|”,G7)-假设它是单元格H2的内容

现在,您应该按如下方式更改上述查询:

=查询(Sheet1!A3:AB50,“选择A、B、AB,其中B与“^.*”(&H2&“.$”)匹配)

这应该能奏效。基本上,“matches”操作符允许使用正则表达式,这也允许使用|符号进行构造


正如我所说,这是一个解决办法,有缺点,但我希望它会有所帮助。

我也有同样的问题,在我的研究中遇到了你的问题。你的串联想法让我思考。问题是我在where子句中使用的范围是动态的。行数将更改。这让我进入了连接函数,这使我得出以下结论:

=(QUERY('Sheet1!A3:AB50,"select A where B = "& JOIN(" OR B = ",ARRAY_CONSTRAIN($A$5:A,COUNTIF($G$4:$G,">0"),1)) &"")
COUNTIF
统计包含数据的行数。我使用的是这个范围内的数字,所以可能
“!=”
“>0”
更合适
ARRAY\u constraint
使用仅包含数据的单元格创建数组
JOIN
将范围转换为where子句的查询语言


需要在where子句开始时使用与
JOIN
函数中delimeter中基本相同的文本。请注意,我使用的是数字,因此不需要在值周围使用
'
。这就是我的电子表格中的工作原理,我希望它能有所帮助。

太棒了!这里有一个小小的改进

而不是:

=连接(G3,“|”,G4,“|”,G5,“|”,G6,“|”,G7)

我们可以使用

=TEXTJOIN(“|”,1,G3:G7)

这也让我们能够处理更大的数组,因为将每个单元格逐个添加到公式中是没有意义的

UPD:

更进一步,我尝试将两个公式组合在一起,以排除帮助单元格,现在我们开始:

=查询(Sheet1!A3:AB50,“选择A、B、AB,其中B匹配“^”。(“&TEXTJOIN(“|“、1、G3:G7)”和“.$”)

在我自己的项目中使用了它,效果非常好