我有一個包含字段RACE,ETHNICITY和ETH的數據庫表。我需要評估RACE和ETHNICITY字段並使用一系列情況填充ETH: 如果Race = W且Ethncity = 1,那麼ETH =高加索等。基於兩個其他字段中的值更新字段
有人可以告訴我關於如何將存儲過程完成這個?
我有一個包含字段RACE,ETHNICITY和ETH的數據庫表。我需要評估RACE和ETHNICITY字段並使用一系列情況填充ETH: 如果Race = W且Ethncity = 1,那麼ETH =高加索等。基於兩個其他字段中的值更新字段
有人可以告訴我關於如何將存儲過程完成這個?
我願意做你的更新CASE語句:
UPDATE yourtable
SET Eth = CASE
WHEN Race = 'W' AND Ethnicity = 1 THEN 'Caucasian'
WHEN Race = 'B' AND Ethnicity = 2 THEN 'African-American'
WHEN Race = 'H' THEN 'Hispanic' --Ethnicity is irrelevant
...whatever other pairs of conditions you want...
END
FROM yourtable
在這種情況下,你可以有你想要在你的case語句中的每一行的任何條件。在一些行中,你可以做兩個條件(如前兩行),在其他行中你可以做一個條件(如第三行)。
規範化的數據,創建一個新的表,與種族+種族複合主鍵:
YourNewTable
Race CHAR(1) PK
Ethnicity CHAR(1) PK
ETH VARCHAR(50)
做一個外鍵到其他表,並加入到顯示ETH:
SELECT
o.Race
,o.ETHNICITY
,n.ETH
FROM YourTable o
INNER JOIN YourNewTable n ON o.Race=n.Race AND o.Ethnicity=n.Ethnicity
+1,與表一起去,而不是一系列的案例陳述。 – Yishai 2009-10-14 19:00:31
這個伎倆。謝謝!! – SidC 2009-10-14 18:56:39