【问题标题】:Entering Excel data into SQL using where使用 where 将 Excel 数据输入 SQL
【发布时间】:2020-06-29 15:35:51
【问题描述】:

我有这个 excel 表(仅用于示例):

而且我在 SQL 表中只有颜色。 我想插入带有如下数字的新列:

insert into table colors
set number = 'c' 
where color = 'RED'

但我有 1500 条记录要添加,但我不能这样做.. 我该怎么做?

谢谢

【问题讨论】:

  • 您使用的是什么 DBMS?请在您的问题中添加相关标签。如果您发布表结构也会有所帮助。或许可以解释一下您是如何从 Excel 中提取数据的,以及您是否使用 VB Python 之类的脚本语言。
  • 使用 color_id 而不是 number 作为列名。由于 number 可能是 SQL 保留字,它将为您节省很多痛苦
  • 好的。但是,我如何从 excel 中导入数据并在 SQL(SSMS)中插入表格并根据颜色更新数字?
  • 我的背景主要是 Oracle,而不是 SQL Server,但这种语法看起来像是 INSERT 和 UPDATE 语句的奇怪组合。也许这只是我和我对 SQL Server 的了解不足,但这看起来真的不对....

标签: sql sql-insert


【解决方案1】:

您无需了解数据库即可编写 SQL 插入或更新。 SQL 是通用的。只有像 MySql 和 T-SQL 这样的风格才包含 SQL 以外的语言组件。

https://www.mysqltutorial.org/mysql-insert-statement.aspx

更新

在阅读 cmets 后才看到您的实际问题。首先,创建一个连接更新脚本的 Excel 列。

    =concatenate("update colors set number = '", B1, "' where color = '", A1, "'")

创造

首先,创建一个将值连接成格式的 Excel 列:

('颜色', '数字'),

    =concatenate("('", A1, "', '", B1, "'),")

请注意,SQL Server 一次只能插入 1000 行。

    insert into colors values
    (paste rows here)
    (remove comma from last line)

如果您输入的数据与表格的形式不同,您只需在查询中指定表格结构,您可以控制。

【讨论】:

    【解决方案2】:

    首先,您需要在SQL 表中添加一个列(我们称之为sql_table)。我假设您的 excel 表中的颜色是 sql_table 中颜色的子集。

    alter table sql_table
    add color_id varchar(100) --change datatype/length as desired
    

    然后您可以将bulk upload that file into SSMS 作为一个新表(在上传/导入期间确保将数据类型设置为与您的 sql_table 相同(我们将此新表称为 excel_table)

    最后,update 你的 sql_table 由 joining 到你的 excel_table。我假设 sql_table 每种颜色有 1 行。

    update sql_table a
    join excel_table b on a.color = b.color
    set a.color_id = b.color_id;
    

    如果您愿意,您可以删除该 excel_table,因为您的 sql_table 已更新

    【讨论】:

      【解决方案3】:

      我做的很简单, 我只是将数据从 excel 复制到 SSMS: 1.右键单击->编辑200行。我过去的数据。

      我做了你写的:

      update sql_table a
      join excel_table b 
      on a.color = b.color
      

      谢谢大家

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 1970-01-01
        • 2019-03-12
        • 2023-04-02
        • 2013-01-26
        • 2016-11-26
        相关资源
        最近更新 更多