表格查询 SQL "in" 类似函数
Sheets query SQL "in" -like function
我有一个 table,在 google sheet:
中有一些数据
[Name] [Product] [Price] [ID]
我需要根据另一个范围收集所选行并对其求和,比如 A2:A
在另一个 sheet 上,其中 A2:A
包含来自 [Name]
的名称。
我正在尝试以下解决方案:
=query('dataSheet'!A3:D,"select * " & myFunction() ,-1)
其中 myFunction()
是用于组装 SQL 查询的 "where ... or where ... " 部分的脚本:
function myFucntion(){
var payList = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Ügyfél Fizetés').getRange('A2:A').getValues();
var payLength = payList.filter(String).length;
var payRow = payLength + 2;
if (payLength > 0){
var sqlString = "";
sqlString = "where A = '""" & " & """ & "A " & payRow & """ & """ & "'";
for (i = 0; i < payLength; i++){
}
}
Logger.log(sqlString);
return sqlString;
}
sqlString
应该看起来像这样:
where A = '" & A2 & "' or A = '" & A3 & "'"
我将在 for
循环中添加 or
段,但是 sqlString = ...
部分抛出错误:
Missing ; before statement.
请帮助我了解语法,或者如果您对我的问题有更有效的解决方案,我愿意接受所有建议。
当使用 Google Apps 脚本编写 Google Sheets 自定义函数时,我们应该记住两种语法,Google Sheets 使用的语法和 Google 使用的语法Apps 脚本,如果公式将包含 QUERY 内置函数,我们还会显示 Google 查询语言语法。
Google 表格公式和 Google Apps 脚本语句具有不同的语法。
串联
- On Google Sheets
&
用作连接运算符
- Google Apps 脚本使用 JavaScript,当至少一个操作数是字符串时,它使用
+
连接字符串。
在文本中包含 "
/在字符串中转义引号
- 在 Google 工作表上将
"
放入文本值我们写 """
- 在 JavaScript 上要在字符串中包含
"
我们写 \"
在 Google Apps 脚本
上写入时在 QUERY 参数中包含 '
- 开启 Google 查询语言
'
需要包含字符串文字。当我们将在 Google Apps 脚本中为 QUERY 函数编写 SQL 语句时,应将其写在字符串内,如 \'
.
我有一个 table,在 google sheet:
中有一些数据[Name] [Product] [Price] [ID]
我需要根据另一个范围收集所选行并对其求和,比如 A2:A
在另一个 sheet 上,其中 A2:A
包含来自 [Name]
的名称。
我正在尝试以下解决方案:
=query('dataSheet'!A3:D,"select * " & myFunction() ,-1)
其中 myFunction()
是用于组装 SQL 查询的 "where ... or where ... " 部分的脚本:
function myFucntion(){
var payList = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Ügyfél Fizetés').getRange('A2:A').getValues();
var payLength = payList.filter(String).length;
var payRow = payLength + 2;
if (payLength > 0){
var sqlString = "";
sqlString = "where A = '""" & " & """ & "A " & payRow & """ & """ & "'";
for (i = 0; i < payLength; i++){
}
}
Logger.log(sqlString);
return sqlString;
}
sqlString
应该看起来像这样:
where A = '" & A2 & "' or A = '" & A3 & "'"
我将在 for
循环中添加 or
段,但是 sqlString = ...
部分抛出错误:
Missing ; before statement.
请帮助我了解语法,或者如果您对我的问题有更有效的解决方案,我愿意接受所有建议。
当使用 Google Apps 脚本编写 Google Sheets 自定义函数时,我们应该记住两种语法,Google Sheets 使用的语法和 Google 使用的语法Apps 脚本,如果公式将包含 QUERY 内置函数,我们还会显示 Google 查询语言语法。
Google 表格公式和 Google Apps 脚本语句具有不同的语法。
串联
- On Google Sheets
&
用作连接运算符 - Google Apps 脚本使用 JavaScript,当至少一个操作数是字符串时,它使用
+
连接字符串。
在文本中包含 "
/在字符串中转义引号
- 在 Google 工作表上将
"
放入文本值我们写"""
- 在 JavaScript 上要在字符串中包含
"
我们写\"
在 Google Apps 脚本
上写入时在 QUERY 参数中包含'
- 开启 Google 查询语言
'
需要包含字符串文字。当我们将在 Google Apps 脚本中为 QUERY 函数编写 SQL 语句时,应将其写在字符串内,如\'
.