2012-07-20 61 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

相關問題