1

我创建了一个名为 LeadInventor 的字段,

如果第一个发明者表中的名称与发明者表匹配,我希望 SQL Server 做的是在 LeadInventor 字段中插入“是”。第一个发明者表将名称作为一个字段,发明者表将它们分开第一个和最后一个

这是我到目前为止的编码,我知道这是错误的。

if inventor.InventorFirst + ' ' +inventor.InventorLast  = firstinventor.firstinventorname
insert into Inventor(LeadInventor) values ('Yes')
else insert into Inventor(leadinventor) values ('No');

我想知道的是如何修复它,或者重新编写它,以便它会按照我的要求去做?

4

2 回答 2

4

像这样的东西?

UPDATE i
SET LeadInventor = 
    CASE 
        WHEN fi.FirstInventorName IS NULL THEN 'No' 
        ELSE 'Yes' 
    END
FROM Inventor i
    LEFT JOIN FirstInventor fi
    ON i.InventorFirst + ' ' + i.InventorLast = fi.FirstInventorName
于 2012-07-20T01:55:39.670 回答
0

我认为用 case 进行内部连接会做,因为你正在匹配字符串

UPDATE inv
SET LeadInventor =
CASE WHEN fi.FirstInventorName IS NULL THEN 'No' WHEN fi.FirstInventorName ='' THEN 'No' - 假设您想要 NO 即使是空白名字,如果不删除此行
ELSE 'Yes'
END FROM Inventor inv
INNER JOIN FirstInventor firstinv ON firstinv.FirstInventorName = inv.InventorFirst + ' ' + inv.InventorLast

于 2012-07-20T03:17:03.193 回答