SQL INSERT基于SELECT结果

时间:2011-05-05 20:50:20

标签: sql insert

请原谅我,因为我对SQL比较陌生。但我试图从一个表上的SELECT查询中获取修改后的数据,并使用它将数据填充到另一个表中。

SELECT ID FROM TABLE WHERE VALUE=10

我想将结果ID插入到另一个表中,但修改后的值为:

1stString.ID.2ndString

我已经找到了如何在插入中使用SELECT中的ID的答案,但我似乎无法在尝试连接时使其工作。我还插入了其他值,但它们是文字(我试图初始化另一个表格中给出的ID的默认密钥设置。

使用MS SQL Studio 2008,顺便说一句。

2 个答案:

答案 0 :(得分:41)

INSERT INTO table (field)
SELECT '1stString.' + cast(id as varchar(50)) + '.2ndString' 
FROM table2 
WHERE id = 10

编辑 - 回复评论: 你走在正确的轨道上,但你想从你的桌子中选择你的硬编码字符串,如下所示:

INSERT INTO table1 (field1, field2, field3)
SELECT '1stVal', '2ndVal', '1stString.' + cast(id as varchar(50)) + '.2ndString' 
FROM table2 
WHERE id = 10

Dustin Laine的回答也说明了这一点。

答案 1 :(得分:8)

INSERT table1
(
    f1, f2, f3, f4
)
SELECT f1, f2, f3, 'defaultval' as f4
FROM table2
WHERE value = 1