oracle sql语句 若某字段为空则更新此字段否则更新另一个字段,只用一个sql语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql语句 若某字段为空则更新此字段否则更新另一个字段,只用一个sql语句相关的知识,希望对你有一定的参考价值。

如 表ss 字段有 id bengtime endtime,我要根据id更新,若bengtime为空则更新bengtime,否则更新endtime

oracle中条件更新用case when结构,举例如下:
用法如下:
update test set column1=
(case testCond
when \' \' then \'xxx\'
else yyy end )
这样就可以更具某个字段的值来更新另外一个字段了。
参考技术A 通用sql:
update ss
set bengtime = case when bengtime is null then sysdate else bengtime end,
endtime = case when endtime is null then sysdate else endtime end
where id = ...

或者,简单点:
update ss
set bengtime = nvl(bengtime,sysdate),
endtime =nvl(endtime,sysdate)
where id = ...
参考技术B update ss set bengtime=decode(bengtime ,null,sysdate-1,bengtime),endtime=decode(bengtime,null,endtime,sysdate) where id=xxxxx;本回答被提问者和网友采纳

SQL基础11:sqlserver、oracle添加修改删除字段注释

参考技术A 使用上面的命令,不管是否已经添加过注释,都会通过覆盖的方式替换掉。当语句当中的注释不为空的时候,就相当于是修改表或字段的注释;当表或者字段的注释为空的时候,就相当于是在增加注释;更新也是一样。

我们在给字段添加注释的时候往往会有很多字段,比如一张表的字段会有50个字段,如果逐条添加至少会用20分钟这样效率太慢了,这时候我们要想如何快速添加。这里给大家附上我的方法

以上是关于oracle sql语句 若某字段为空则更新此字段否则更新另一个字段,只用一个sql语句的主要内容,如果未能解决你的问题,请参考以下文章

php+mysql多字段同时修改,如果传来的值为空则不修改,php该用哪种方法最好?

oracle SQL语句怎么修改数据表的字段允许为空?

SQL中isnullifnull和nullif函数用法

Oracle 中 decode 函数用法(字段A,B, C,A不为空则取A,否则取B,B为空则取C)

Oracle中查询某字段不为空的SQL语句怎么写

oracle的nvl