【问题标题】:How to set a value for a Column in oracle based on query results?如何根据查询结果为oracle中的列设置值?
【发布时间】:2016-10-27 14:45:04
【问题描述】:

我的Oracle DB 中有一个名为Person 的表,其中包含以下列:

- ID
- Name
- hasPaid
- sendProduct

对于hasPaid 值为'yes' 的任何行,我想将sendProduct 列的当前值修改为'Yes'

select * from Person where hasPaid = 'Yes';

我在上面编写了以下查询来获取 hasPaid 值为 'Yes' 的所有行,但是我不确定如何使用它来设置 hasPaid 列?

【问题讨论】:

  • 您需要更新表还是直接在 select 语句中获取该值,而不修改数据?
  • 不,我要修改表中已有的数据,谢谢
  • 这真的不是您应该在 stackoverflow 上提出的问题级别 - 获取 SQL 手册并阅读它。 (不,我没有对你投反对票)

标签: sql database oracle oracle10g oracle-sqldeveloper


【解决方案1】:

OldProgrammer的答案是正确的。
但是如果你只想更新需要更新的行,你也可以使用:

UPDATE Person 
SET sendProduct = 'Yes' 
WHERE sendProduct != 'Yes' 
AND hasPaid = 'Yes';

【讨论】:

    【解决方案2】:
    UPDATE Person
    SET sendProduct = 'Yes'
    where hasPaid = 'Yes';
    

    也许阅读SQL Tutorial? 这是一个非常基本的 DML(数据操作语言)概念。

    【讨论】:

    • 唯一的终极答案
    猜你喜欢
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多