有条件地更新case参数不为null的字段

时间:2012-01-27 12:07:04

标签: sql oracle hibernate

我需要一个查询来更新一个字段。如果传递的参数为null,则不要使用参数的空值

更新它
update myTable 
set myField1 = :param1

环境:hibernate和oracle

1 个答案:

答案 0 :(得分:5)

你不能把它放在那里的子句吗?

update myTable
   set myField1 = :param1
 where :param1 is not null

这样可以避免额外的DML。或者你可以这样做:

update myTable
   set myField1 = decode(:param1, null, myField1, :param)

但这意味着您将某个字段更新为相同的字段,当您不必这样做时,该字段并非最佳。