如果不为null,则从同一字段更新空字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果不为null,则从同一字段更新空字段相关的知识,希望对你有一定的参考价值。

我想更新所有NULL PlayerId字段,将现有的PlayerId与完全相同的Name匹配到同一个表中

我有相同的名称一些NULL PlayerID和一些具有良好的值:

    SELECT count(*) as c, Name, PlayerId FROM my_table 
    WHERE Name = 'John,Doh' GROUP BY PlayerId order by c ASC;


+---+-----------+-------------+
| c | Name      | PlayerId    |
+---+-----------+-------------+
| 2 | John,Doh  |        NULL |
| 8 | John,Doh  |     2900084 |
+---+-----------+-------------+

我不知道它是否可能来自同一张表,还是应该创建一个临时表?

谢谢,

答案
update your_table t1
join your_table t2 on t1.name = t2.name
                  and t2.playerId is not null
set t1.playerId = t2.playerId
where t1.playerId is null

以上是关于如果不为null,则从同一字段更新空字段的主要内容,如果未能解决你的问题,请参考以下文章

oracle怎么判断一个字段不是空值

sql查询不为空的字段

Oracle中查询某字段不为空的SQL语句怎么写

sql中更新某个字段中部分空值的语句怎样写?

获取两个字段中不为空的那个字段 ---SQL

在查询SQL语句中为空或者不为空的字段应该怎么写?