1

LeadInventor というタイトルのフィールドを作成しました。

私が SQL Server に実行させたいのは、最初の発明者テーブルの名前が発明者テーブルと一致する場合、LeadInventor フィールドに yes を挿入することです。最初の発明者テーブルには名前が 1 つのフィールドとしてあり、発明者テーブルには名前が最初と最後に分かれています

これは私がこれまでに持っているコーディングであり、間違っていることはわかっています。

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

文字列を一致させているので、ケースを使用した内部結合でうまくいくと思います

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 に答える