如何从一组其他列中更新列

时间:2019-06-10 13:50:43

标签: sql

我有一个表A,其中第1列,第2列,第3列,第4列和第5列。

第1,2,3,4列已经有数据,我们需要根据该数据和优先级更新第5列。

第1列的优先级为5,列2的优先级为4,列3的优先级为3,列4的优先级为2。

因此,如果特定行具有所有列,则应该选择第1列,因为它具有最高优先级并更新第5列, 如果一条记录仅在Col 3和4中具有数据,则该记录应为Col3并在Col 5中进行更新,因为3的优先级高于Col4。 如果没有第1-4列的数据,则第5列应该为空。

我的表中有24k记录,我需要对所有行都运行它。

此查询的任何指针都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

我认为您想要coalesce()-假设没有值的列具有NULL

update t
    set col5 = coalesce(col1, col2, col3, col4);

如果您不想实际更改数据,也可以将coalesce()放在select中。