【问题标题】:Google Sheets Query Language: escape apostrophe谷歌表格查询语言:转义撇号
【发布时间】:2016-01-25 11:55:43
【问题描述】:

如何在 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")

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

【问题讨论】:

  • 看起来您在示例中使用正斜杠而不是反斜杠
  • 我都试过了..没有运气

标签: google-sheets google-sheets-formula google-query-language


【解决方案1】:

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

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

【讨论】:

  • 编辑了我的答案.. 再试一次?如果还是不行,能否分享一些示例数据?
  • 这种语法对我来说很难理解,但我只是假设如果我用文本替换一个变量(命名/范围)它会很好,而且确实如此。这是与变量相同的语句:“SELECT * WHERE C="""&Enemy&""""
【解决方案2】:

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

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

【讨论】:

  • 还有一个稍微简单的版本:=QUERY(A:B, "SELECT A WHERE B = """ & C1 & """")。注意末尾的 4x 引号。
【解决方案3】:

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

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

相应地,你可以写

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

【讨论】:

    【解决方案4】:

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

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

    编辑:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      相关资源
      最近更新 更多