如何使用具有多个结果的子查询将值插入表中?
Posted
技术标签:
【中文标题】如何使用具有多个结果的子查询将值插入表中?【英文标题】:How can I insert values into a table, using a subquery with more than one result? 【发布时间】:2012-03-30 08:13:55 【问题描述】:非常感谢您的帮助。
可能这是一个很容易解决的问题 - 但我不是那个.. ;-)
我在 SQL Server 中有两个表:
-
文章
价格
现在我想选择一组特定的 id 并将一些条目插入到带有这些 ID 的价格表中。
例如(错误且不工作的 SQL)
INSERT INTO prices (group, id, price)
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);
SQL 错误 -> 子查询有多个值
感谢帮助
【问题讨论】:
哇! 2012 年 3 月 13 日 21:18 有这么多正确答案(提示:您可以将鼠标悬停在时间戳上以获取秒数) 【参考方案1】:我正在使用这种方法。
WITH selected AS (
SELECT articleId FROM article WHERE name LIKE 'ABC%'
) INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50 from selected;
【讨论】:
【参考方案2】:试试这个:
INSERT INTO prices (
group,
id,
price
)
SELECT
7,
articleId,
1.50
FROM
article
WHERE
name LIKE 'ABC%';
【讨论】:
【参考方案3】:如果你在表中插入一条记录,你可以这样做
INSERT INTO yourTable
VALUES(value1, value2)
但由于要插入多条记录,可以在 SQL 语句中使用SELECT FROM
。
所以你会想要这样做:
INSERT INTO prices (group, id, price)
SELECT 7, articleId, 1.50
from article
WHERE name LIKE 'ABC%'
【讨论】:
【参考方案4】:INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50
FROM article where name like 'ABC%';
【讨论】:
【参考方案5】:子查询看起来像
insert into table_name (col1,col2,....) values (select col1,col2,... FROM table_2 ...)
希望有帮助
【讨论】:
【参考方案6】:INSERT INTO prices (group, id, price)
SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%'
【讨论】:
【参考方案7】:你想要:
insert into prices (group, id, price)
select
7, articleId, 1.50
from article where name like 'ABC%';
您只需对常量字段进行硬编码。
【讨论】:
INSERT INTOiden_course
(Cse_M_ID,Cse_M_Name
,Cse_M_ShName
, Cse_M_TotSem
,Cse_M_CreatedDate) 值 ('ID','BJf', 'BJfg' , '4',Now( )) select max(Cse_M_ID) as ID from iden_course 如何在这个查询中添加以上是关于如何使用具有多个结果的子查询将值插入表中?的主要内容,如果未能解决你的问题,请参考以下文章