1

我有一个像这样组织的谷歌电子表格:

       A         B         C    
  |---------+---------+---------|
1 | Column1 | Column2 | Column3 |
  |---------+---------+---------|
2 | value1  | value2  | value3  |
  |---------+---------+---------|

我想在单元格上生成以下 SQL 查询:

update TableX set Column1 = value1, Column2 = value2, Column3 = value3

我知道可以这样做:

=CONCATENATE("update TableX set ",A1," = ",A2,", ",B1," = ",B2,", ",C1," = ",C2)

但是有没有更好的方法来做到这一点,可以很容易地让我添加或删除新行?我正在寻找这方面的东西(例如,下面的功能):

=CONCATENATE("update TableX set ",JOINTWOROWS(" = ", ", ",A1:C1,A2:C2))

其中参数 1 和 2 将是列内分隔符和列间分隔符。

我还希望能够添加新行,这将自动获取新的更新查询,例如:

       A         B         C         D
  |---------+---------+---------+---------|
1 | Column1 | Column2 | Column3 | Column4 |
  |---------+---------+---------+---------|
2 | value1  | value2  | value3  | update1 |
  |---------+---------+---------+---------|
3 | value1a | value2a | value3a | update2 |
  |---------+---------+---------+---------|
4 | value1b | value2b | value3b | update3 |
  |---------+---------+---------+---------|
5 | value1c | value2c | value3c | update4 |
  |---------+---------+---------+---------|
4

2 回答 2

1

一个未经测试的想法:使用公式添加一个新行(第 3 行)

=CONCATENATE(", ";A1;" = '";A2;"')

只要您愿意,将此行向右拖动即可。

在更新单元格公式中,使用:

=CONCATENATE("更新 TableX 集";A3:XYZ3)

于 2013-04-19T20:21:57.240 回答
1

如果我理解正确,在您的示例的 D1 中填充了额外的行:

=ArrayFormula(IF(ROW(A:A)=1;"Column4";IF(LEN(A:A)*LEN(B:B)*LEN(C:C);"update TableX set "&A1&" = "&A:A&", "&B1&" = "&B:B&", "&C1&" = "&C:C;IFERROR(1/0))))
于 2013-04-22T21:17:40.657 回答