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的值是“男装”吗?
如何在 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的值是“男装”吗?