Postgresql:插入excel列中的多个值

Postgresql:插入excel列中的多个值,sql,excel,postgresql,sql-insert,Sql,Excel,Postgresql,Sql Insert,我需要从excel列中插入许多值 例如,我可以手动执行以下操作: INSERT INTO estructura.multiselect_options (value, id_multiselect, type_multiselect) VALUES ('Some Value1', 9, 'field'), ('Some Value2', 9, 'field'), ('Some Other Value3', 9, 'field'), ('Some Another Value4', 9, '

我需要从excel列中插入许多值

例如,我可以手动执行以下操作:

INSERT INTO estructura.multiselect_options
(value, id_multiselect, type_multiselect)
VALUES 
('Some Value1', 9, 'field'), 
('Some Value2', 9, 'field'), 
('Some Other Value3', 9, 'field'), 
('Some Another Value4', 9, 'field'), 
etc...
唯一改变的值将是第一个,即“某些值”。其他两个总是一样的。但我在Excel列中有所有这些“某些值”,如下所示:

A
Some Value 1
Some Value 2
Some Other Value 3
Some Another Value 3
etc...

那么,有没有一种方法可以从excel复制粘贴一列,然后将所有值放入查询中?一些在线工具,不管怎样,我不知道我怎么能做到。执行这些操作的人希望在Postgres的SQL查询中运行一个查询文本。我无法使用其他方式执行查询,因此我唯一的目标是生成大的查询文本,但如何操作。

查看网站,您可以将excel文件保存为.csv并粘贴到此处。它将为您提供一个包含所有插入内容的查询

查看网站,您可以将excel文件另存为.csv并粘贴到此处。它将为您提供一个包含所有插入内容的查询

有一些工具可以帮助将数据转换为插入,但我通常在Excel中自己做。假设您的数据位于A到C列中,如下所示:

  |         A           | B |   C   |
--+---------------------+---+-------+
1 | Some Value1         | 9 | field | 
2 | Some Value2         | 9 | field | 
3 | Some Other Value3   | 9 | field | 
4 | Some Another Value4 | 9 | field | 
--+---------------------+---+-------+
然后在D1中输入公式

=CONCATENATE("('" , A1 , "'," , B1 , ",'", C1, "')," )
把这个复制到所有行。现在,您应该能够将此列数据粘贴到代码窗口的
插入值
部分之后,只需在插入的最后一组值之后删除逗号即可

或者,如果您只有A列,并且需要重复其他列:

=CONCATENATE("('" , A1 , "', 9, 'field'),")
正如@luisarcher所指出的,您可以使用连接符号
&
组合“参数”,而不是使用
连接
函数。这样,第二个论坛将成为:

= "('" & A1 & "', 9, 'field'),"

我反复考虑我更喜欢哪种方法。有时我也会将诸如
”(“
”之类的奇数位放入其他单元格中,并引用它们。这使最终的公式更容易构建。

有一些工具可以帮助将数据转换为插入,但我通常在Excel中自己完成。假设您的数据位于A到C列中,如下所示:

  |         A           | B |   C   |
--+---------------------+---+-------+
1 | Some Value1         | 9 | field | 
2 | Some Value2         | 9 | field | 
3 | Some Other Value3   | 9 | field | 
4 | Some Another Value4 | 9 | field | 
--+---------------------+---+-------+
然后在D1中输入公式

=CONCATENATE("('" , A1 , "'," , B1 , ",'", C1, "')," )
将其复制到所有行中。您现在应该能够将此列数据粘贴到代码窗口的
插入值
部分之后,并且只需在要插入的最后一组值之后删除逗号即可

或者,如果您只有A列,并且需要重复其他列:

=CONCATENATE("('" , A1 , "', 9, 'field'),")
正如@luisarcher所指出的,您可以使用连接符号
&
组合“参数”,而不是使用
连接
函数。这样,第二个forumla将变成:

= "('" & A1 & "', 9, 'field'),"

我反复考虑我更喜欢哪种方法。我有时也会放入一些奇数位,如
“(”)
输入其他单元格,并引用这些单元格。这使最终公式更易于构建。

谢谢,伙计。我现在正在检查哪一个可以解决我的问题。如果你的页面效果更好,我会稍后将你的答案视为正确答案。谢谢,伙计。我现在正在检查哪一个可以解决我的问题。我很高兴如果你的页面工作得更好,我会认为你的答案是正确的。像这样的公式可能会让打字感到困惑,你是复制粘贴还是手工打字?它们对我来说不会出错(至少第一个示例放在D1中时不会出错,第二个示例放在A1以外的任何地方)。有时,我会通过添加必要的引号和逗号来简化公式,以便输出到其他单元格中,然后引用公式中的这些单元格。您可以使用运算符&而不是串联。这在以后的阅读中要简单得多。您可以,我也经常这样做(使用
&
)。不确定哪一个更容易阅读!在图像中,在
之后很难分辨(
如果你有
那么
或者其他方式。它需要是
然后
。我的版本应该可以复制和粘贴。像这样的公式可能会混淆键入,您复制并粘贴了还是手动键入?它们对我来说不会出错(至少在第一个示例中放在D1中时不会出错,在第二个示例中放在A1以外的任何位置)。有时,我会通过添加必要的引号和逗号来简化公式,以便输出到其他单元格中,然后引用公式中的这些单元格。您可以使用运算符&而不是串联。这在以后的阅读中要简单得多。您可以,我也经常这样做(使用
&
)。不确定哪一个更容易阅读!在图像中,在
之后很难分辨(
如果你有
那么
或者其他方式。它需要是
然后
"
。我的版本应该可以复制和粘贴。我最终选择第二个答案作为正确答案。我可以通过连接单词来完成所有工作,如下所示:更快、更简单。谢谢各位。我最终选择第二个答案作为正确答案。我可以通过连接单词来完成所有工作,如下所示:更快、更简单d简单,谢谢你们。