SQL INSERT基于SELECT结果

Mat*_*t D 26 sql insert

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

SELECT ID FROM TABLE WHERE VALUE=10
Run Code Online (Sandbox Code Playgroud)

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

1stString.ID.2ndString
Run Code Online (Sandbox Code Playgroud)

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

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

ros*_*533 44

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

编辑 - 对评论的回复:您处于正确的轨道上,但您想从表中选择硬编码的字符串,如下所示:

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

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


Dus*_*ine 11

INSERT table1
(
    f1, f2, f3, f4
)
SELECT f1, f2, f3, 'defaultval' as f4
FROM table2
WHERE value = 1
Run Code Online (Sandbox Code Playgroud)