2012-07-20 65 views
1

我有一个字段中创建名为LeadInventor,将是或否根据不同表中的字段值相等

我想SQL服务器做的是插入是到LeadInventor场,如果从第一个发明者表中的名称匹配发明者表。第一发明人表具有名称作为一个字段,发明表已经分开他们第一次也是最后

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

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

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

回答

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 
+0

作品像冠军!我会接受它,一旦它让我! – 2012-07-20 01:57:45

0

我认为内部联接用的情况下会做,因为你是匹配的字符串

UPDATE INV
SET LeadInventor =
CASE WHEN fi.FirstInventorName为null,则 '否' WHEN网络.FirstInventorName =''然后'否' - 假设你甚至不需要删除此行,即使是空白名称也不需要
否则'是'
END 从发明者inv
INNER JOIN FirstInventor firstinv ON firstinv.FirstInventorName = inv.InventorFirst +''+ inv.InventorLast

+0

这会工作,但我确实需要这两个领域现在只是其中的一个名称。有时,某些数据的存储方式只是让没有任何意义,我可以没有名字的记录,但像在最后名称框中3个独立的名称。 我认为任何人谁做任何形式的数据录入应要求至少了解DB的原则和领域是如何工作的, – 2012-07-20 03:28:29

+0

是,表单UI应该有严格的验证,因为没有名字登记和其他数据不作任何感。 – 2012-07-20 03:38:19

+0

可惜这种数据犯规来自于一种形式,它从XML文件......我相信主程序是谁写在Python采油平台的家伙只是想获取数据的,如果没有以一种有意义的这样做,其更容易修复它在SQL那么这将是对我学习Python – 2012-07-20 14:58:04

相关问题