0
我有一個SQL表,如Ref#,EndDate,StepRespone,StepName。數據每天在SQL表中使用excel文件進行填充。
現在我想使用現有的SQL表作爲臨時表因爲我想對數據做一些按摩和過濾。
我希望將數據傳輸到另一臺,如果StepName是BureauPull我想給結束日期與Login_Date映射,如果StepName是L2我想與Decision_Date圖吧。 Ref#是唯一列,如果記錄在新表中不可用,那麼我想插入數據,如果它是可用的,那麼我想執行上面的檢查。
我試過使用合併,並構建了以下查詢,但它給了我語法錯誤。基於一些檢查插入數據從一個SQL表到另一個
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)
可能有任何其他的方式來做這個,而不是使用合併,但我不確定它。任何幫助將不勝感激。
感謝
不,基本上我不認爲連接將在這裏工作(我也許是錯誤的),因爲我從1個SQL表插入到另一個,只有一些列將根據StepName得到更新。如果記錄是新的,並且在新表格中不可用,那麼該行將被插入,因爲它是 –
好吧,我明白了。然後是的,JOIN可能對你沒有多大幫助。 –