我将表中的所有值插入到另一个表中,该表是即时创建的。我想在我创建的新表中插入一个具有常量值的额外列。
我有FinSls
这样的表,
Time Terminal_ID Count
------------------------------------
2017-10-19 06:03:00 1 5
2017-10-19 06:04:00 1 2
2017-10-19 06:05:00 1 2
2017-10-19 06:06:00 1 2
2017-10-19 06:03:00 9 2
2017-10-19 06:04:00 9 3
2017-10-19 06:05:00 9 2
2017-10-19 06:06:00 9 3
我正在创建一个新表BinTable
,我想添加一个具有常量值的列cons_val
,例如:1,像这样,
Time Terminal_ID Count Cons_value
------------------------------------------------
2017-10-19 06:03:00 1 5 1
2017-10-19 06:04:00 1 2 1
2017-10-19 06:05:00 1 2 1
2017-10-19 06:06:00 1 2 1
2017-10-19 06:03:00 9 2 1
2017-10-19 06:04:00 9 3 1
2017-10-19 06:05:00 9 2 1
2017-10-19 06:06:00 9 3 1
到目前为止,我的脚本都是这样的,
select *
into
BinTable
from
FinlSls
如何在我的Cons_Value
中添加新列BinTable
?我看到这个post已经创建了表,然后插入了值。但在我的情况下,我该怎么做?
任何帮助都会很棒。
答案 0 :(得分:3)
你只需添加它:
select f.*, 1 as cons_value
into BinTable
from FinlSls f;
使用select *
而不是列出列时,可能会有一些批评。
答案 1 :(得分:1)
您可以将其视为任何其他INSERT
语句,并选择要插入的列。此外,您可以选择选择哪些列,这也允许您加入。
首先定义表格以确保创建主键等是件好事,我认为这已经是您的流程的一部分。我假设这是一次性交易,在这种情况下,您需要正确索引表。如果这是一个用于存储过程的临时表,那么我建议使用临时表(以#开头)。
CREATE TABLE
[BinTable]
(
[BinTableID] INT PRIMARY KEY IDENTITY(1,1),
[Time] DATETIME,
[Terminal_ID] INT,
[Count] INT,
[Cons_val] INT
);
然后你可以插入数据。
INSERT INTO
[BinTable]
([Time], [Terminal_ID], [Count], [Cons_value])
SELECT
[Time],
[Terminal_ID],
[Count],
1 AS [Cons_value]
FROM
[FinSls];
答案 2 :(得分:0)
如果新表已存在,请使用INSERT SELECT,否则可以使用下面的代码
SELECT Time, Terminal_ID, Count, 1
INTO BinTable
FROM FinlSls