Google 表格查询语言:转义撇号

Google Sheets Query Language: escape apostrophe

如何在 Google 表格中转义 SQL 查询中的撇号?

这是我的函数:

=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = 'Woman's blabla: blablabla'"),"SELECT Col1, Col2")

我尝试添加另一个撇号:

=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = 'Woman''s blabla: blablabla'"),"SELECT Col1, Col2")

不走运..我试过加反斜杠,也不走运:

=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = 'Woman/'s blabla: blablabla'"),"SELECT Col1, Col2")

编辑:文档的语言环境是英国。

尝试在带有撇号的单词周围使用双引号

"SELECT * WHERE Col2 = ""Woman's blabla: blablabla"""

尝试通过函数替换源数据中的双引号,您可能需要换掉我添加的一些引号 - 我不知道您搜索的文本在源数据中实际是什么样子:

=QUERY(QUERY(IMPORTRANGE("XXXXXXX", SUBSTITUTE("XXXXXX!A1:C","""","'")),"SELECT * WHERE Col2 = 'Woman's blabla: blablabla'"),"SELECT Col1, Col2")

编辑:

如果您要匹配的字符串在单元格中,请尝试用 """" 包围单元格名称,如下所示:

=QUERY(Foo!A:B,"select A where B = " & """" & A1 & """" & "")

尝试生成类似 SELECT * WHERE Col2 = "Woman's blabla: blablabla" 的输出似乎是一个有效的解决方案。但是,如前所述,使用反斜杠转义字符 \ 不适用于 Google Sheets.

在寻找解决方法时,我发现了这个 link。它建议使用 char(34) 代替双引号,这对我来说是有效的解决方案。

据此,你可以这样写

=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = " & char(34) & "Woman's blabla: blablabla" & char(34)),"SELECT Col1, Col2")

如果您的 WHERE 子句引用包含撇号的单元格怎么办?例如:

=query(dataset!$A:$B1,"select sum(B) where A contains '"&P108&"'",0)

P108的值是“男装”吗?