检查 - 比较>更新SQL表

007*_*007 5 sql t-sql sql-server sql-server-2008

我想编写一个存储过程,我可以根据以下条件更新表.

Table 
EmployeeID  GroupID Group#
123     G123        3
456     G456        3
789     G789        3
101     G101        3

View
GroupID_Granular    GroupID_Middle  GroupID_Executive
G123            M123            E123
G789            M789            E789
Run Code Online (Sandbox Code Playgroud)

如果在View的GroupID_Granular列中找到GroupID,请更新表,设置GroupID = GroupID_Executive并将Group#设置为1.

我不知道如何检查/比较然后运行Update cmd.

谢谢

Mic*_*son 5

这可以通过以下方式轻松完成JOIN:

UPDATE t
SET 
    t.GroupID = v.GroupID_Executive, 
    t.[Group#] = 1
FROM YourTable t
JOIN YourView v ON v.GroupID_Granular = t.GroupID 
Run Code Online (Sandbox Code Playgroud)

Sql在这里小提琴