将多行插入单列

Bal*_*i C 18 sql sql-server-2008

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

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

INSERT INTO Data ( Col1 ) VALUES
('Hello', 'World')
Run Code Online (Sandbox Code Playgroud)

该代码来自这个问题,但它像我在网上找到的许多其他例子一样使用2列,我只想使用1.我做错了什么?

谢谢

小智 38

插入特定列的值与其他列保持相同: -

INSERT INTO `table_name`(col1,col2,col3)
   VALUES (1,'val1',0),(1,'val2',0),(1,'val3',0)
Run Code Online (Sandbox Code Playgroud)

  • +1用于介绍如何向多个行添加多个特定列 (2认同)

JYe*_*ton 25

要仅插入一列,请仅使用一个数据:

INSERT INTO Data ( Col1 ) VALUES
('Hello World');
Run Code Online (Sandbox Code Playgroud)

或者,要插入多个记录,请分隔插入:

INSERT INTO Data ( Col1 ) VALUES
('Hello'),
('World');
Run Code Online (Sandbox Code Playgroud)


Hol*_*ndt 11

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

INSERT INTO Data ( Col1 ) VALUES
('Hello'), ('World'),...
Run Code Online (Sandbox Code Playgroud)


Voi*_*Ray 8

另一种方法是使用union:

INSERT INTO Data ( Col1 ) 
select 'hello'
union 
select 'world'
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 5

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

INSERT INTO Data(Col1) VALUES ('Hello'), ('World');
Run Code Online (Sandbox Code Playgroud)

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

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

INSERT INTO Data (Col1) VALUES ('Hello');
INSERT INTO Data (Col1) VALUES ('World');
Run Code Online (Sandbox Code Playgroud)