带有子查询和值的 SQL INSERT INTO

Posted

技术标签:

【中文标题】带有子查询和值的 SQL INSERT INTO【英文标题】:SQL INSERT INTO with subquery and value 【发布时间】:2013-09-12 19:26:47 【问题描述】:

有没有一种方法可以使用硬值和子查询的组合通过一个命令插入到表中?

例如:

INSERT INTO suppliers (supplier_id, supplier_name, supplier_type)
SELECT account_no, name
FROM customers
WHERE city = 'San Diego';

我需要supplier_type 为3。那么我可以为第二行执行以下操作吗?

SELECT account_no, name, supplier_type = 3

supplier_type 不在客户表中

【问题讨论】:

【参考方案1】:

只需将其与您的 SELECT 字段一起添加即可。

INSERT INTO suppliers (supplier_id, supplier_name, supplier_type)
SELECT account_no, name, 3 AS supplier_type
FROM customers
WHERE city = 'San Diego';

【讨论】:

【参考方案2】:

更简单,只需要填写值,甚至不需要AS:

INSERT INTO suppliers (supplier_id, supplier_name, supplier_type)
SELECT account_no, name, 3
FROM customers
WHERE city = 'San Diego';

【讨论】:

以上是关于带有子查询和值的 SQL INSERT INTO的主要内容,如果未能解决你的问题,请参考以下文章

SQL编程之高级查询及注意事项

如何在 Oracle SQL Developer 中生成带有子查询的 INSERT 语句?

带有在子查询中生成的值的 Oracle SQL 更新语句

表的完整语法增,删,改,查( 子查询 )

带有 NOT IN 子查询的 SELECT INTO 查询需要很长时间/挂起

SQL 语句递归查询 With AS 查找所有子节点