【问题标题】:Using CONCATENATE in Excel在 Excel 中使用连接
【发布时间】:2014-10-13 15:40:25
【问题描述】:

我目前正在将两个数据库合并在一起工作,我正在使用 Excel 生成我的 INSERT 语句。我使用 Excel 的原因是因为我有 1500 多条记录,我不想为这些记录编写那么多 INSERT 语句。我会给你一些关于我的设置的背景:

如您所见,我正在上面的屏幕截图中设置我的 INSERT 语句。完成后将如下所示:

INSERT INTO "database name"("columns") 
VALUES("values")

在我在上面的屏幕截图中描绘的行下方,我有大约 1500 多行和 50 多列。正如你所看到的,除了 INSERT 语句的值部分之外,我都设置好了。为了进行设置,我使用 CONCATENATE 从我的第一行中获取所有值以完成我的第一个插入语句。这是我遇到一些麻烦的地方。

要使我的 INSERT 语句正常工作,我的单元格值需要采用以下格式:

"00064","PPMeetME","test","test" 等等。但是,如果您查看上面用红色圈出的屏幕截图,我无法将数据限制为这种格式。我尝试了各种不同的字符放置,我不确定它是否能够完成,但有没有办法设置我的 CONCATENATE 语句,让它看起来像我刚才提到的那样?

(例如:"00064","PPMeetMe","00001","Test" 而不是 "00064,PPMeetMe,00001,Test")

如果有任何不清楚的地方,请告诉我,我会尝试进一步澄清。任何帮助是极大的赞赏。

谢谢!

-戴夫

【问题讨论】:

  • 您以什么形式获取这些数据?是文本文件吗?如果是这样,为什么不使用导入向导?它来自其他数据库吗?如果是这样,为什么不使用插入选择?
  • 我基本上只是从我的一个数据库中复制数据并将其粘贴到 Excel 电子表格中。我这样做的理由是,如果我可以正确设置 Values 列,我可以简单地将列向下拖动,它会负责为 1500 多行中的每一行设置我的插入语句。这有意义吗?
  • 并非如此,如果您只是想将一个数据库复制到另一个数据库,那么有很多方法不需要手动操作 excel 文件。
  • 使用导入向导并让数据源成为其他数据库中的表。您可能必须编辑映射以确保您不会过度编写约束等,但它是一种更可靠的 IMO 方式。
  • 您为什么不使用 SSIS 将数据从一个数据库传输到另一个数据库?不会将数据传输到 Excel,您可以使用映射功能不仅决定哪些表接收哪些数据,还可以决定哪些列进入哪些列。右键单击目标中的数据库,选择tasks,然后选择Import data

标签: sql excel insert sql-insert


【解决方案1】:

在 Excel 中有两种执行连接的方法。您可以使用连接公式,也可以在要连接的每个值之间使用&。由于您需要在 VALUE 术语周围包含双引号,您可以使用公式 =Char(34) 返回双引号。你可以这样做:

=char(34) & A1 & char(34) & "," & char(34) & A2 & char(34) & "," & char(34) & A3 ... & char(34) 

=Concatenate(char(34), A1, Char(34), ",", char(34), A2, ...char(34))

这可能有点难看,您可能需要考虑将完整的字符串 "," 放在单独的单元格中。只需将其放入单个单元格(例如 IV1):=char(34) & "," & char(34),然后您的连接公式将如下所示:

=char(34) & A1 & IV1 & A2 & IV1 & A3 & ... & char(34)

或者

=Concatenate(char(34), A1, IV1, A2, IV2, A3, IV3, A4.... ,char(34))

【讨论】:

  • 非常感谢您的回答。这似乎确实达到了我想要的效果。我会接受这个答案,因为它确实解决了我原来的问题。然而,我确实找到了一种更简单的方法来实现我的总体目标,那就是使用 Microsoft SQL Server 中的导入数据功能。非常感谢您深入了解 Excel 中的 Concatenate 函数。
  • 很高兴听到你和 ssis 一起去了。用这个方法插入少量记录是合理的,但是 1500 条插入语句正在拉伸它......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 2017-02-06
  • 2012-08-07
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多