我想知道如何处理这样的查询。假设我在电子表格的单元格 A2 中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
并需要将以下公式放入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
它会产生错误。
我的问题是:当我使用的字符串包含任何种类的引号和撇号时,有什么方法可以避免查询出错?
我想知道如何处理这样的查询。假设我在电子表格的单元格 A2 中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
并需要将以下公式放入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
它会产生错误。
我的问题是:当我使用的字符串包含任何种类的引号和撇号时,有什么方法可以避免查询出错?
"要转义单引号/撇号,请在双引号 ( )之间包含包含撇号的字符串。Google Sheets QUERY 内置函数通过\在单引号之前在内部添加来自动转义某些字符,但当用作条件源的单元格值包含双引号时,它不起作用。作为一种解决方法,建议使用双重替换。
下表表示包含的电子表格范围
=QUERY(A:A,"SELECT * WHERE A = """&B1&""" ")+---+---------+-----+------+ | | 一个 | 乙| C | +---+---------+-----+------+ | 1 | 我是 | 我是 | 我是 | | 2 | 你是 | | | | 3 | 它是 | | | | 4 | 我是 | | | | 5 | 你是 | | | | 6 | 是| | | +---+---------+-----+------+
=替换(
询问(
替代(A:A,"""","''"),
"SELECT * WHERE Col1 = """&SUBSTITUTE(B1,"""","''")&""""
),
"''",""""
)
请注意,它不是使用字母 A 作为数据源列的标识符,而是使用 Col1。
https://developers.google.com/chart/interactive/docs/querylanguage
=query('Book list'!A:F,"select B,C,D,E where F=""free"" and D="""&E1&"""") - because:
以下是每种文字类型的格式:
字符串文字应该用单引号或双引号括起来。例子:"fourteen", 'hello world', "It's raining".
如上面的参考资料所述。