2017-03-02 47 views
2

我試圖創建一種轉換工具,它將根據特定條件使用新值更新一組數據。根據表1中的條件,將表更新表(1)轉換爲另一個表中的值

表A具有列方案1,1類,條件1,條件2,

表B具有所有可能的方案(S)2的列表,類(多個)2我需要更新至。

基本上,表A中的所有內容都爲需要更新的內容設置條件。這是我遇到困難的地方。

我正打算沿

UPDATE table_A 
SET class1 = table_B.class '1' 
WHERE IN (class1= '1', condition1 = '1', condition2 = '2') 

然後重複此爲所有分類線的東西。大約有50個分類。

這是正確的軌道,還是有一個更快/更清潔的方式來做到這一點?我甚至需要第二張桌子嗎?或者我可以只更新它?只是創建第三個而不是更新原始表格會更容易嗎? (我需要SQL之外將這些數據轉換後)

回答

0

如果我理解正確的話,這應該工作

UPDATE a 
SET class1 = b.class 
FROM 
    TableA a 
    JOIN TableB b ON a.scheme = b.scheme 
WHERE 
    a.condition1=... 
    AND a.condition2 = ... 
0

方法從SELECT第一視角UPDATE語句的發展,那麼一旦你能以您想要的方式檢索值,將選擇轉換爲UPDATE。

首先建立一個SELECT來顯示結果。更新什麼用什麼什麼

SELECT a.class1 
     b.class1 
FROM table_A AS a 
    INNER JOIN table_B AS b 
    ON a.id = b.id 
WHERE a.condition1 = '1' 

現在您可以將其修改爲UPDATE。

--SELECT a.class1 
--  b.class1 
UPDATE a 
SET a.class1 = b.class1 
FROM table_A AS a 
    INNER JOIN table_B AS b 
    ON a.id = b.id 
WHERE a.condition1 = '1' 
相關問題