根据某些检查将数据从一个SQL表插入另一个SQL表

时间:2017-06-19 09:13:03

标签: sql excel merge

我有一个SQL表,其中包含 Ref#,EndDate,StepRespone,StepName 等列。使用excel文件每天在SQL表中填充数据。

现在我想将现有的SQL表用作临时表,因为我想对数据进行一些按摩和过滤。

我想将数据传输到另一个表中,如果StepName是BureauPull,我想用 Login_Date 映射 Enddate ,如果 StepName 是L2我想用Decision_Date映射它。 Ref#是唯一的列,如果新表中没有记录,那么我想按原样插入数据,如果可用,那么我想执行上述检查。

我已经尝试使用Merge并构造了以下查询,但它给了我语法错误。

MERGE od_test2 T --tareget
USING OD_TEST S --source
ON (S.ref = T.REF)
WHEN MATCHED 
THEN UPDATE
SET T.LOGIN_DATE = 
(CASE 
WHEN s.stepname IN ('BUREAUPULL') THEN CONVERT(VARCHAR,s.[ENDDATE]) 
ELSE CONVERT(VARCHAR,s.[LOGIN_DATE]) 
END S.LOGIN_DATE),
T.Decision_DAte = (CASE 
WHEN s.stepname IN ('l2','l3') THEN CONVERT(VARCHAR,s.[ENDDATE]) 
ELSE CONVERT(VARCHAR,s.[DECISION_DATE]) 
END S.DECISION_DATE)

WHEN NOT MATCHED
THEN INSERT (Target_Column_Names)
VALUES (Source_Column_Names)

可能有任何其他方式这样做而不是使用Merge但我不确定它。任何帮助都将受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:0)

这是我在这里的第一个答案,所以我可能会非常偏离目标。你有没有尝试过JOIN( - INNER JOIN - LEFT JOIN - RIGHT JOIN)。