Sql 在Oracle中使用条件更新表

Sql 在Oracle中使用条件更新表,sql,oracle,Sql,Oracle,我刚刚遇到了一个场景,即有一个表BATCH,其中有10条记录,列为sl_no和BATCH_typ,如下所示 在这里,我想用SQL query更新批处理类型,其中蓝色应为绿色,反之亦然。提前感谢。您可以使用大小写表达式进行更新: UPDATE BATCH SET BATCH_TYP = CASE WHEN BATCH_TYP = 'GREEN' THEN 'BLUE' ELSE 'GREEN' END WHERE BATCH_TYP IN ('GREEN', 'BLUE'); 请使用下面的更新

我刚刚遇到了一个场景,即有一个表BATCH,其中有10条记录,列为sl_no和BATCH_typ,如下所示


在这里,我想用SQL query更新批处理类型,其中蓝色应为绿色,反之亦然。提前感谢。

您可以使用
大小写
表达式进行更新:

UPDATE BATCH
SET BATCH_TYP = CASE WHEN BATCH_TYP = 'GREEN' THEN 'BLUE' ELSE 'GREEN' END
WHERE BATCH_TYP IN ('GREEN', 'BLUE');

请使用下面的更新声明

update BATCH set batch_typ =
case when batch_typ = 'BLUE' then 'GREEN'
     when batch_typ = 'GREEN' then 'BLUE' end;

对于这种情况,您可以使用updatewithcase

UPDATE BATCH set batch_typ =
case when batch_typ = 'BLUE' then 'GREEN'
     when batch_typ = 'GREEN' then 'BLUE' end;

````````````````

嗨,蒂姆,我已经尝试过这种方法,但它不起作用。输出将像第一个1-5,它应该是绿色的是空的,6-10将是蓝色的。因此,在这种情况下,这是不可能的。请让我知道,如果您有任何其他方法,请编辑您的问题,并提供有助于解释您在这里想要什么的示例输入和输出。