即使传递了false,Oracle更新查询也会将值设置为两个值中的true

时间:2014-06-06 07:34:37

标签: sql oracle

我有以下Oracle更新查询来设置计数和事件命中。

update iam_counts
     set count = count + 1, event_hit = :eventHit
   where row_id = :rowId

Count是数字类型,event_hit是char类型(T或F)

此查询是从两个方法中调用的。方法1,事件命中为false,方法2,事件命中为真。

在这两种情况下,都应更新计数,对于事件命中,应将其设置为true,如下所示

  • 方法1调用 - 假
  • 方法2调用 - true
  • 方法1调用 - true ---->即使事件命中为false,也应将其设置为true

是否有像检查或查询这样的功能来实现它。

1 个答案:

答案 0 :(得分:0)

你在寻找这样的东西:

update iam_counts
set count = count + 1, 
event_hit = decode(event_hit, 'T', 'T', :eventHit)
where row_id = :rowId
如果event_hit为false,则会更新它,如果为true,则会保持不变。