Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在参数不为null的情况下有条件地更新字段_Sql_Oracle_Hibernate - Fatal编程技术网

Sql 在参数不为null的情况下有条件地更新字段

Sql 在参数不为null的情况下有条件地更新字段,sql,oracle,hibernate,Sql,Oracle,Hibernate,我需要一个查询来更新一个字段。如果传递的参数为null,则不要使用该参数的null值对其进行更新 update myTable set myField1 = :param1 环境:hibernate和oracle你不能把它放在where子句中吗 update myTable set myField1 = :param1 where :param1 is not null 这样可以避免额外的DML。或者,您可以执行以下操作: update myTable set myField

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

update myTable 
set myField1 = :param1

环境:hibernate和oracle

你不能把它放在where子句中吗

update myTable
   set myField1 = :param1
 where :param1 is not null
这样可以避免额外的DML。或者,您可以执行以下操作:

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

但这意味着您要将一个字段更新为相同的值,这在您不需要的情况下并不是最理想的。

您不能将它放在where子句中吗

update myTable
   set myField1 = :param1
 where :param1 is not null
这样可以避免额外的DML。或者,您可以执行以下操作:

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

但这意味着您要将字段更新为相同的值,这在您不必更新的情况下并不是最理想的。

@geo-我推荐第一个版本。除了:param1和:param应该是同一个参数…@Dems,抓到了!我已经更新了。geo选择更新更多的列,这意味着第二个查询是正确的…@geo-我推荐第一个版本。除了:param1和:param应该是同一个参数…@Dems,抓到了!我已经更新了。geo的选择让我感到有更多的列正在更新,这意味着第二个查询是正确的。。。