【发布时间】:2015-07-24 18:53:49
【问题描述】:
我有一个SQL table 和column A & B
我需要从相应的 DB2 表中删除数据,其列值与上述 sql 表不同。我已经实现了类似下面的东西来实现这个功能。
RSSQL.打开"select * from sql_table"
ConnDB2
"DELETE from db2_table where not exists(select 1 from db2_table d where d.A='" & rssql.fields(0) & "' and d.B = '"& rssql.fields(1) &"')
但是这个删除命令不能删除 db2 表中的任何值。请帮忙。
SQL 表:
COLUMN A COLUMN B
12 23
34 56
DB2 表:
COLUMN A COLUMN B
1 2
12 23
3 4
34 56
所以,我的删除命令应该删除第一行和第三行。删除后,db2 表应如下所示:
DB2 表:
COLUMN A COLUMN B
12 23
34 56
【问题讨论】:
-
不清楚您要做什么,您能否提供一个示例表,其中包含一些说明问题的数据。您的问题似乎很笼统,因此您应该能够将 sqlfiddle 与 DB2 以外的一些 DBMS 一起使用
-
@lennart:我已经添加了示例表并输出了。你现在能帮忙吗
-
这些表是否存在于两个不同的数据库服务器中?
-
@Utkarsh:是的。第一个表是sql表。第二个是 db2 表。我必须根据不应该与 sql 表的列值匹配的列值从 db2 表中删除数据
-
SQL 是一种语言,具有来自不同公司的不同实现——DB2(来自 IBM)就是其中之一。 SQL Table(其他公司)到底是什么意思?请注意,您可能最容易将另一个表批量加载到 DB2 中,然后在那里运行 Gordon 的回答中的语句。此外,您应该使用某种形式的参数化查询,因为您可能对 SQL 注入持开放态度。
标签: sql db2 sql-delete