0

我需要从临时表更新表。因此,我需要比较并找出哪些行不在要从临时表导入的主表中。我的表格如下所示,

line_id -> nvarchar(20)
order_no -> nvarchar(20)
line_no ->int

两个表都有相同的字段,但临时表有更多最新记录要带到主表中。我在用;

INSERT INTO main_table
  SELECT * FROM temp_table t 
  WHERE t.line_id NOT IN (SELECT line_id FROM main_table)

但条件 WHERE t.line_id NOT IN (SELECT line_id FROM main_table)不会带来任何订单行。但是当order_no使用 代替 时line_id,比较完成并且数字或订单行开始出现。Butorder_no不是唯一键,并且该比较不会返回所需的所有行。

如果您能帮助我,那就太好了..提前致谢!

4

2 回答 2

2

Not-in 会带来奇怪的麻烦。这是对同一想法的不同看法。

Insert Into main_table
  select t.* 
    from temp_table t
    left outer join main_Table m
      on t.line_id=m.line_id
   where m.line_id is null
于 2012-07-31T18:51:41.507 回答
0

尝试以下操作:

INSERT INTO main_table
  SELECT * FROM temp_table t 
  WHERE LTRIM(RTRIMt.line_id)) NOT IN (SELECT LTRIM(RTRIM(line_id)) FROM main_table)
于 2012-07-31T18:53:54.627 回答