当value为NULL时,更新一行中的单个列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当value为NULL时,更新一行中的单个列相关的知识,希望对你有一定的参考价值。

我在尝试弄清楚如何使用SQLPLUS更新记录中的单个单元格时遇到了一些麻烦。在名为CUSTOMER I的表中,CUSTOMER_NUMBER列不是主键,也是空值。我错误地将两个CUSTOMER NUMBER值相同。

enter image description here

我现在的问题是,有没有办法让ALTERUPDATE成为唱片中的一个奇异单元?我需要将Adams行改为412而不是522

答案

这就是主键很重要的原因!

您必须非常小心地更新另一个(希望是唯一的)字段,或者您可能会更新比预期更多的记录。自从Adams,Sally在你的例子中出现两次后,街道名称确实与你提到的522条目不同。

当然,这假定只有一个地址有这个名字! (并且表中没有其他“16 ELM”可能不会出现在您的示例输出中)

尝试:UPDATE CUSTOMER set CUS=412 WHERE STREET='16 ELM'

如果有其他条目具有相同的地址,那么这些条目也会更新。如果您使用过WHERE LAST='Adams',那么您将更新2条记录。

另一答案

更新客户设置cus = 412其中rowid不在(通过cus从客户组中选择max(rowid));

这应该符合您的目的。请提供有关结果的反馈。

以上是关于当value为NULL时,更新一行中的单个列的主要内容,如果未能解决你的问题,请参考以下文章

将列分组为一行,忽略 postgreSQL 中的空值

当日期为空时,在访问中的日期列中插入空值

[更新mysql表后仅在单个列中丢失数据

当参数为NULL时,将DEFAULT值插入列中

将单个 case 语句应用于 sql 中的所有列

如何根据具有相同 id 的另一行更新一行