我想找到'N / A'值并用下一个值更新它

时间:2016-11-30 10:37:53

标签: sql tsql

我有一张表,其中有很多值为'N / A'。我想用下一个非'N / A'值更新它。

我的桌子:

col1  || column2   || Column3   


N/A   ||  ACT0001   || ACT0002


ACT0004   || N/A   || ABT0003


N/A   || N/A   || AND0009

输出:

Column4

ACT001

ABT003

AND009

提前谢谢

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分: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')