sql - 如何在 SQL 中使用额外的值从一张表插入另一张表?

标签 sql sql-server tsql sql-insert

我有两张 table 。我想从 Table1 插入到 Table2,并且我想将额外的值插入到 Table 2 的列中。有没有一种方法可以在一个 SQL 语句中完成这一切?

Table 1

[Id]             UNIQUEIDENTIFIER NOT NULL,
[Description]    VARCHAR (140)    NULL,
[Cost]           MONEY            NULL,

Table 2

[Id]                  UNIQUEIDENTIFIER NOT NULL,
[Order Number]        NVARCHAR (10)    NULL,
[Order Date]          DATETIME         NULL,
[Item Number]         NVARCHAR (4)     NULL,
[Item Description]    VARCHAR (140)    NULL,
[Item Cost]           MONEY            NULL,
[Order Total Cost]    MONEY            NULL,
[Order Tax Cost]      MONEY            NULL, 

这是我的 SQL 语句:

INSERT INTO Table2 ([Id], [Item Description], [Item Cost])
SELECT NEWID(), Description, Cost FROM  Table1
WHERE Id = '1'

最佳答案

只需将值与列列表中的列一起添加到 select 行即可:

INSERT INTO Table2 ([Id], [Item Description], [Item Cost], [Order Date])
    SELECT NEWID(), Description, Cost, '2014-12-13'
    FROM  Table1
    WHERE Id = '1';

关于sql - 如何在 SQL 中使用额外的值从一张表插入另一张表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464309/

相关文章:

mysql - 如何执行多级 ORDER BY,其中具有特定值的行将获得优先权?

sql - 如何组合 GROUP BY 和 ROW_NUMBER?

sql - STRING_SPLIT 到多个变量

asp.net - 在 ASP.NET 网站中使用 SQL Server Compact Edition

sql-server-2008 - 查询优化器运算符的选择-嵌套循环vs哈希匹配(或合并)

javascript - Html5 表示值未定义

sql - PostgreSQL - 使第一行显示为其他行的总和

sql - 将 2 个复杂的 GROUP BY/PARTITION BY 查询调整为 1 个查询

sql - SQL“ANSI_NULLS OFF”比较

sql - 在 SQL Server 2005 中寻求模块化——将多个记录集返回到存储过程