sql - 如何将目标表中尚不存在的行从另一个表插入到一个表中?
问题描述
我想将 Table2 中的行复制到 Table1 中,只要它们在 Table1 中不存在。现在我得到一般错误Incorrect syntax near the keyword 'WHERE'.
和Incorrect syntax near the keyword 'NOT'.
DECLARE @UserID varchar(100)
SET @UserID = 'me'
INSERT INTO Table1 (Col1, Col2, Col3, Col4, Col7,
Col8, Col9, Col5, Col6)
(SELECT 2 AS [Col1], Col2, Col3, Col4, Col7,
Col8s, GETDATE() AS [Col9], @UserID AS [Col5], GETDATE() AS [Col6]
FROM Table2 AS bpt)
WHERE (SELECT (CONVERT(varchar(10), Col2) + Col3 + Col4) FROM Table2) NOT EXISTS
(SELECT (CONVERT(varchar(10), Col2) + Col3 + Col4) FROM Table1)
解决方案
您可以使用以下查询来创建选择语句以插入表 1。
SELECT col1,col2
FROM table2
WHERE NOT EXISTS (SELECT col1,col2
FROM table1
WHERE table1.pk = table2.pk);
PK---->主键
推荐阅读
- highcharts - 使用 highcharts-vue 和 axios 绘制可变数量的系列
- spring - 用于实践的 Spring 和 Hibernate 项目
- tcl - 如何从 -command 选项中的代码获取结果
- reactjs - 如何为每个 Material-UI TableRow 添加 react-router?
- python - python pandas不计算订单对
- javascript - 在发送到服务器之前编辑数据(特别是浏览器指纹)?
- canvas - 三.js球体改变透明度无效?
- java - 春季百里香实现
- java - 在 Firebase 中切换子代
- python - ModelForm 中的 Django Queryset 使用“pk”