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

问题描述 投票:0回答:2

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

enter image description here

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

sql oracle sql-update
2个回答
1
投票

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

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

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

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.