Sql 值为NULL时更新行中的单个列

Sql 值为NULL时更新行中的单个列,sql,oracle,sql-update,Sql,Oracle,Sql Update,我在试图找出如何使用SQLPLUS更新记录中的单个单元格时遇到了一些问题。在名为CUSTOMER I的表中,CUSTOMER_NUMBER列不是主键,也是空值。我错误地使两个客户编号值相同 我现在的问题是,有没有办法修改和更新记录中的单个单元格?我需要将亚当斯行更改为412而不是522。这就是为什么主键很重要 您必须非常小心地更新另一个希望唯一的字段,否则您可能会更新比预期更多的记录。由于Adams、Sally在您的示例中出现了两次,因此您提到的522条目的街道名称确实有所不同 当然,这是假设只

我在试图找出如何使用SQLPLUS更新记录中的单个单元格时遇到了一些问题。在名为CUSTOMER I的表中,CUSTOMER_NUMBER列不是主键,也是空值。我错误地使两个客户编号值相同


我现在的问题是,有没有办法修改和更新记录中的单个单元格?我需要将亚当斯行更改为412而不是522。

这就是为什么主键很重要

您必须非常小心地更新另一个希望唯一的字段,否则您可能会更新比预期更多的记录。由于Adams、Sally在您的示例中出现了两次,因此您提到的522条目的街道名称确实有所不同

当然,这是假设只有一个地址具有此名称! 表中没有其他16个ELM可能不会出现在示例输出中

尝试:更新客户集CUS=412 WHERE STREET='16 ELM'

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

更新客户 设置cus=412 其中rowid不在按客户从客户组中选择maxrowid


这应该符合你的目的。请提供对结果的反馈。

确定挑战在于确定要更新哪一行?一旦您能够做到这一点,更新一列就变得微不足道了。