Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL将所有列插入具有第二列常量的表中_Sql - Fatal编程技术网

SQL将所有列插入具有第二列常量的表中

SQL将所有列插入具有第二列常量的表中,sql,Sql,我有一个新表,它由两列组成。我试图做的是将另一个表中一列的所有值插入到新表中,但第二列必须是常量 例如: Table1 ID 1 2 3 4 5 6 我试图将表1中的所有ID插入新表中的COL1,同时使COL2保持常量 如何实现这一点?您可以在SELECT语句中使用常量: INSERT INTO NewTable ( Col1 , Col2 ) SELECT Id AS Col1 , 1 AS Col2 FROM Table1; 或者,如果您希望使用预先指

我有一个新表,它由两列组成。我试图做的是将另一个表中一列的所有值插入到新表中,但第二列必须是常量

例如:


Table1 
ID
1
2
3
4
5
6
我试图将表1中的所有ID插入新表中的COL1,同时使COL2保持常量
如何实现这一点?

您可以在SELECT语句中使用常量:

INSERT INTO
  NewTable
(
    Col1
  , Col2
)
SELECT
    Id AS Col1
  , 1 AS Col2
FROM
  Table1;
或者,如果您希望使用预先指定的变量,您可以编写:

DECLARE @Col2Value AS INT;
SET @Col2Value = 1;

INSERT INTO
  NewTable
(
    Col1
  , Col2    )
SELECT
    Id AS Col1
  , @Col2Value AS Col2

FROM
  Table1;
如果希望新表的第二列具有默认值,可以在表声明中定义该值,然后仅插入第一列的值:

CREATE TABLE
(
    Col1 INT
  , Col2 INT DEFAULT(1)
);

INSERT INTO
  NewTable
(
  Col1
)
SELECT
   Id AS Col1
FROM
  Table1;

如果
表2
存在,您可以执行以下操作:

insert into table2 (col1, col2)
    select col1, 1
    from table1;
如果
table2
不存在并且您想要创建它,那么就有相应的语法。最常见的是
将表创建为

create table table2 as
    select col1, 1 as col2
    from table1;
有些数据库将
转换为
语法:

select col1, 1 as col2
into table2
from table1;

插入到表2中从表1中选择Col1,1作为col2
尝试此操作将列定义为默认常量。创建表so_56(col1编号,col2编号默认为1);插入so_56(col1)中,从表1中选择id;用你正在使用的数据库标记你的问题。我已经用@JaydipJadhavs solution解决了这个问题,但由于他将其作为评论发布,我不确定如何接受它
select col1, 1 as col2
into table2
from table1;