2017-03-02 71 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' 
相关问题