2016-11-30 32 views
2

我有一个表,其中很多值是'N/A'。我想用下一个非'N/A'值来更新它。我想找到'N/A'值,并用下一个值更新它

我的表:

col1 || column2 || Column3 


N/A || ACT0001 || ACT0002 


ACT0004 || N/A || ABT0003 


N/A || N/A || AND0009 

输出:

Column4

ACT001 

ABT003 

AND009 

预先感谢您

+0

你到目前为止尝试过什么?数据库中只有3列还是更多? – Dhwani

回答

1

这个什么:

UPDATE Table 
SET Col4 = COALESCE(NULLIF(Col1, 'N/A'), NULLIF(Col2, 'N/A'), NULLIF(Col3, 'N/A')) 

可以删除NULIIF声明如果Col3是要始终有值,或者添加其他条件,如果所有的值是“N/A” :

COALESCE(NULLIF(Col1, 'N/A'), NULLIF(Col2, 'N/A'), NULLIF(Col3, 'N/A'), 'No value found') 
1

不知道我理解你,也许类似的东西?

UPDATE YourTable t 
SET t.col4 = CASE WHEN t.col1 = 'N/A' THEN 
              CASE WHEN t.col2 <> 'N/A' THEN t.col2 
               ELSE t.col3 
              END 
        WHEN t.col2 = 'N/A' THEN t.col3 
      END 
+0

谢谢,这就是我一直在寻找的。 –

1
 UPDATE YourTable SET COl4 = CASE WHEN Col1 = 'N/A' THEN 
    COALESCE(Col1,Col2) WHEN Col2 = 'N/A' THEN COALESCE(Col2,Col3) ELSE Col3  
    END 
+0

简而言之 –

相关问题