表格查询SQL"在"类似的功能

时间:2018-06-18 07:09:25

标签: sql google-apps-script google-sheets google-query-language custom-function

我在google表格中找到了包含一些数据的表格:

[Name] [Product] [Price] [ID]

我需要根据其他范围收集并总结所选行,例如A2:A在另一个工作表上,其中A2:A包含来自[Name]的名称。

我正在尝试以下解决方案:

=query('dataSheet'!A3:D,"select * " & myFunction() ,-1)

其中myFunction()是一个脚本,可以对"哪里......或者......" SQL查询的一部分:

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 & "'"

我会在or循环中添加for段,但sqlString = ...部分会抛出错误:

  

失踪;在声明之前。

帮助我解决语法问题,或者如果您有更有效的解决方案,我可以接受所有建议。

1 个答案:

答案 0 :(得分:0)

使用Google Apps脚本编写Google表格自定义功能时,我们应该考虑两种语法,Google表格和Google Apps脚本使用的格式,如果公式包含QUERY内置函数,我们也会显示请注意Google查询语言语法。

Google表格公式和Google Apps脚本语句具有不同的语法。

连接

  • 在Google表格&上用作连接运算符
  • Google Apps脚本使用JavaScript,当至少有一个操作数是字符串时,使用+来连接字符串。

在文字中包含" /在字符串中转义引号

  • 在Google表格上将"置于文本值内,我们会写"""
  • 在JavaScript上我要写"
  • ,在字符串中包含\"

在Google Apps脚本上写入时,在QUERY参数中包含'

  • 在Google查询语言中'需要包含字符串文字。当我们在Google Apps脚本中为QUERY函数编写SQL语句时,它应该在字符串中写为\'