我有一张表,其中有很多值为'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 :(得分: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')