sql - INSERT INTO 具有不同的列数
问题描述
我想将表 A (NAG) 中的一行插入表 B (Kunde)。
NAG 表只有 4 列,Kunde 表有 13 列。由于列数不同,我总是会收到一个错误:ora-00913 too many values。
我使用的查询是:
INSERT INTO kunde
SELECT * FROM NAG
left outer join kunde ON NAG.adrnr = kunde.adrnr
WHERE kunde.adrnr IS NULL
adrnr 是客户 ID。如果有帮助,我正在使用 SQLTools 1.8b38。谁能帮我解决这个问题?谢谢你。
解决方案
您需要枚举insert
命令中的目标列,并相应地枚举select
源表中的相关列)。
看起来你想要:
insert into kunde (adrnr, tmstmp, matchcode, art)
select n.adrnr, n.tmstmp, n.matchcode, n.art
from nag n
where not exists (select 1 from kunde k where n.adrnr = k.adrnr)
我重写了left join ... where ... is null
as not exists
,因为我发现它更清晰 - 但逻辑与 a 相同left join
。
推荐阅读
- java - 运行着色 Jar 时未加载泽西岛验证
- python - 在不更改 Python 中的语言环境的情况下检测语言环境是使用 12 小时还是 23 小时格式
- html - 如何使此文本更靠近页脚并更靠近页脚的一侧?
- pandas - Pandas Profiling-使用 python、pyspark 将 .html 数据解释为可读的表格格式
- string - 如何使用 BERT 对空字符串进行编码
- python - 在 XML elementtree python 中添加父节点
- c++ - c ++ noob coder问题
- sqlite - 使用 UNION 和
选择以 A 到 K 开头的名称 - excel - 使用 VBA 从网站抓取数据。网站上的搜索栏立即替换我的输入
- sql - 用逗号分隔连接 SQL 列