【问题标题】:Insert multiple rows into single column将多行插入单列
【发布时间】:2012-08-01 20:49:14
【问题描述】:

我是 SQL 新手(使用 SQL 2008 R2),在将多行插入单个列时遇到问题。

我有一个名为Data 的表,这就是我正在尝试的

INSERT INTO Data ( Col1 ) VALUES
('Hello', 'World')

该代码取自 this 问题,但它与我在网上找到的许多其他示例一样使用 2 列,我只想使用 1。我做错了什么?

谢谢

【问题讨论】:

  • @BaliC...您是要在一条记录中插入“Hello”,然后在另一条记录中插入“World”...还是在一条记录中输入“Hello World”?
  • @MikeTWebb 第一个,“Hello”进入一个,“World”进入另一个。

标签: sql sql-server-2008


【解决方案1】:

为特定列插入值,其他列保持不变:-

INSERT INTO `table_name`(col1,col2,col3)
   VALUES (1,'val1',0),(1,'val2',0),(1,'val3',0)

【讨论】:

  • 这里...在单个查询中,col2 添加了 3 个不同的值作为 3 个不同的记录,所有记录中 col1 和 col3 的值都相同
  • +1 用于介绍如何将多个特定列添加到多行
【解决方案2】:

要只插入一列,只使用一条数据:

INSERT INTO Data ( Col1 ) VALUES
('Hello World');

或者,要插入多条记录,请将插入分开:

INSERT INTO Data ( Col1 ) VALUES
('Hello'),
('World');

【讨论】:

    【解决方案3】:

    我相信这应该适用于插入多行:

    INSERT INTO Data ( Col1 ) VALUES
    ('Hello'), ('World'),...
    

    【讨论】:

      【解决方案4】:

      另一种方法是使用联合:

      INSERT INTO Data ( Col1 ) 
      select 'hello'
      union 
      select 'world'
      

      【讨论】:

      • 我不知道有什么理由在下面的其他答案中使用这种方法。我想听听为什么这是公认的答案。
      【解决方案5】:

      如果您的 DBMS 支持该表示法,您需要为每一行单独设置一组括号:

      INSERT INTO Data(Col1) VALUES ('Hello'), ('World');
      

      交叉引用的问题显示了插入两列的示例。

      另外,每个 SQL DBMS 都支持使用单独语句的表示法,每行一个要插入:

      INSERT INTO Data (Col1) VALUES ('Hello');
      INSERT INTO Data (Col1) VALUES ('World');
      

      【讨论】:

        【解决方案6】:
          INSERT INTO Data ( Col1 ) VALUES ('Hello'), ('World')
        

        【讨论】:

          【解决方案7】:

          在该代码中,您将插入两列值。 你可以试试这个

             INSERT INTO Data ( Col1 ) VALUES ('Hello'),
             INSERT INTO Data ( Col1 ) VALUES ('World')
          

          【讨论】:

            【解决方案8】:

            请确保,其他列不限于接受Not null 值,因此在表中创建列时只需忽略“Not Null”语法。例如

            Create Table Table_Name(
                        col1 DataType,
                        col2 DataType);
            

            然后,您可以在任何您想要的列中插入多个行值。 例如:

            Insert Into TableName(columnname)
            values
                  (x),
                  (y),
                  (z);
            

            等等……

            希望这会有所帮助。

            【讨论】:

              【解决方案9】:
              INSERT INTO hr.employees (location_id) VALUE (1000) WHERE first_name LIKE '%D%';
              

              如果此声明有任何问题,请告诉我。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-11-19
                • 2011-06-14
                • 2014-09-25
                • 1970-01-01
                • 1970-01-01
                • 2012-09-11
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多