SQL中的顺序搜索

时间:2016-07-13 17:28:02

标签: sql sql-server search sql-update traversal

我正在尝试从另一个表中搜索值,如果6-7列中的任何一个具有不同的值,那么我将它们插入到现有表中并更改标志。

是否有特定的搜索方式或者我应该使用顺序搜索?不确定这在SQL中是如何工作的

例如:

表A

A B C D Flg
1 2 3 4 N 
2 1 4 3 N
3 3 2 1 N
4 4 1 2 N
5 2 1 2 N
1 3 3 4 Y --(flg changed because values in column B changed)

逻辑遍历表以查找值何时更改,然后更新Flag并将这些值插入另一个表中。

1 个答案:

答案 0 :(得分:0)

我不确定我会关注数据来自何处或哪个表正在接收数据。如果你只是一次处理一行而且它需要在一个独立的insert中,那么也许这就是你需要的。

;with MyData(A, B, C, D) as (
    select * from (values (1, 3, 3, 4)) as v
)
insert into Table1 (A, B, C, D, Flg)
select A, B, C, D, 'Y'
from MyData as d
where not exists (
    select 1 from Table2 as t
    where t.A = d.A and t.B = d.B and t.C = d.C and t.D = d.D
);

我预感到,除了你已经掌握的任何方法之外,可能还有一种更清洁的方法。