[英]Insert values from a different table with a new column with constant value in T-SQL
我正在将一个表中的所有值插入动态创建的另一个表中。 我想在我创建的新表中插入一个常量值的额外列。
我有这样的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
? 我看到这篇文章已经创建了表,然后插入了值。 但是在我的情况下,我该怎么做?
任何帮助都是极好的。
您只需添加它:
select f.*, 1 as cons_value
into BinTable
from FinlSls f;
使用select *
而不是列出各列可能会有一些批评。
您可以像对待其他任何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];
如果新表已经存在,请使用INSERT SELECT,否则可以使用下面的代码
SELECT Time, Terminal_ID, Count, 1
INTO BinTable
FROM FinlSls
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.