如果ID不存在,则插入表中,否则跳过

时间:2017-01-11 22:18:56

标签: sql pentaho kettle

我正在使用Kettle Pentaho数据集成。我需要跳过从第一个表(第一个数据库)插入IdN列,如果它已经存在于第二个表(第二个数据库)中。

在我的水壶设计中,我有表输入(它返回了一些行)。

我需要从返回的行中选择不同的IdN列,并将它们(所有不同的ID)插入到第二个数据库的第二个表中(这样我就可以避免重复ID了。)

我在执行sql语句

中尝试使用此代码
INSERT INTO {SecondTable}
SELECT DISTINCT (IdN) 

但是错误地返回:

  

列名'IdN'无效。

让我感到困惑的是,我已经将参数IdN检查到我的水壶设计的“执行SQL部分”节点下的“字段名称用作参数”,这是我从前一个表返回的有效列名输入节点。

2 个答案:

答案 0 :(得分:1)

我成功使用"独特的行"在Kettle中,它将完全按照我的意愿行事,只需指定要检查值存在的列。

答案 1 :(得分:0)

确定我理解。您正在尝试编写查询以从一个数据库中将idN列选择到另一个数据库中的表中。如果是这样,查询应该如下所示

    Insert into db1.dbo.tableName1(colname)
    Select Distinct colname From db2.dbo.tablename2