2016-07-18 40 views
-1

如何用sql server中的多個唯一值更新多列?如何使用sql server中的多個唯一值更新多列?

,如果我下面的方法需要手動鍵入1000行繼續...這是很難..下面給出

的樣本數據:(最多1000行需要更新)

UPDATE buid 
    SET Country_Code = CASE Business_Unit_ID 
     WHEN 5959 THEN CA 
     WHEN 930102 THEN US 
     WHEN 3737 THEN CN 
     . 
     . 
     . 
     . 
     . 
     . 

    END, 
    Country_NAME = CASE Business_Unit_ID 
      WHEN 5959 THEN Canada 
     WHEN 930102 THEN USA 
     WHEN 3737 THEN China 
     . 
     . 
     . 
     . 
     . 
     . 
    END 
WHERE Business_Unit_ID IN (5959, 
930102, 
3737 
. 
. 
. 
. 
. 
+0

除非你有一個表格,其中有'No'&'Country'或者其他類似的順序列表,以便將Business_Unit_ID映射到Country_Name,那麼這是不可能的。 –

+0

@Ephraim你的意思是另一個表應該在那裏用這些值來獲取使用select查詢過濾的數據? – Rabi

+0

確實...你想要加入一個國家代碼表,其中有列號,國家代碼,countryname或類似的東西。 – ZLK

回答

1

您需要一個表,你可以加入,即

Business_Unit(Business_Unit_ID int, Country_NAME varchar(50), Country_Code varchar(2)) 

那麼你可以做一個連接來更新表:

UPDATE b 
SET b.Country_Code = bu.Country_Code 
, b.Country_NAME = bu.Country_NAME 
FROM buid b 
INNER JOIN Business_Unit bu 
ON bu.Business_Unit_ID = b.Business_Unit_ID 
相關問題