oracle sql 条件为空则不考虑更新
各位好:
我现在有一需求,传入固定的列数,其中列的值为null则整列的值保持原有的值不变.
1.比如 现有表 select A,B,C,D,E From test 显示如下:
good,better,bad,perfect,ok
2. 现在一动态一维数据(No,null,Y,Y)传为修改表test的参数,如果传入的参数有null的值则对应字段的值保持不变.
要实现的效果如 update test set B='No',D='Y',E='Y' where A='good'
请问怎么实现以上类似的效果?
在线等!先谢谢了!
------解决方案--------------------update test set B=decode(p1,null,B,p1),C=decode(p2,null,C,p2),D=decode(p3,null,D,p3),E=decode(p4,null,E,p4) where A='good'
p1,p2,p3,p4为传入的值。
------解决方案--------------------update test set B=nvl(p1,B),C=nvl(p2,C),D=nvl(p3,D),E=nvl(p4,E) where A='good'