SQL Insert执行条件检查

时间:2016-01-14 18:55:22

标签: sql sql-server

如果用户的状态是' employee'我编写了这个SQL查询,如果在两个不同的数据库database1和database2中找到相同的名字,则返回具有姓和名的用户。在database1中的一个表中。

SELECT distinct 
    FirstName, LastName
FROM  
    database1.dbo.test1 a 
JOIN
    database1.dbo.test2 b ON b.id = a.id
JOIN
    database1.dbo.test3 c ON a.id = c.id
JOIN 
    database2.dbo.test d ON a.firstname + ' ' + a.lastname = d.firstname + ' '+ d.lastname
WHERE
    c.status = 'employee'

现在,我需要将上面使用上面查询的名字和名字与数据库中的名字和姓氏进行比较" database2"如果找到匹配,我需要在列#34; isemployee"中插入是的。您能否建议我如何应用条件来比较我上面使用的名称选择查询和数据库2中的名称并插入列#34; isemployee"如果找到名称匹配或条件为真,则为database2。

2 个答案:

答案 0 :(得分:2)

你可以使用Exists

这样的东西
UPDATE  d2
SET     d2.isemployee = 1
FROM    database2.dbo.test d2
WHERE   EXISTS ( SELECT *
                 FROM   database1.dbo.test1 a
                        JOIN database1.dbo.test2 b ON b.id = a.id
                        JOIN database1.dbo.test3 c ON a.id = c.id
                 WHERE  c.status = 'employee'
                        AND a.firstname = d2.firstname
                        AND a.lastname = d2.lastname )

答案 1 :(得分:2)

您可以使用以下代码......

UPDATE d SET isemployee = 'YES!'
FROM  
database1.dbo.test1 a 
join database1.dbo.test2 b on b.id = a.id
join database1.dbo.test3 c on a.id = c.id
join database2.dbo.test d
on a.firstname + ' ' + a.lastname = d.firstname + ' '+ d.lastname
where 
c.status = 'employee'

您需要做的就是使用自己的查询来更新所需的列,因为已经进行了比较