我有一个表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记录,我需要对所有行都运行它。
此查询的任何指针都将受到高度赞赏。
答案 0 :(得分:2)
我认为您想要coalesce()
-假设没有值的列具有NULL
:
update t
set col5 = coalesce(col1, col2, col3, col4);
如果您不想实际更改数据,也可以将coalesce()
放在select
中。