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

时间:2018-03-06 02:38:25

标签: sql oracle sql-update

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

enter image description here

我现在的问题是,记录中有ALTERUPDATE单个单元格吗?我需要将Adams行更改为412而不是522

2 个答案:

答案 0 :(得分:1)

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

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

当然,假设此名称只有 ONE 地址! (并且表格中没有其他" 16 ELM"可能不会出现在您的示例输出中)

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

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

答案 1 :(得分:0)

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

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