当前位置:   article > 正文

Pgsql 里面 COALESCE的用法

pgsql的collasce如何对其他值使用

有这种要求,更新自己本身的字段的某个值进行加或者减,

常规方法:

  1. UPDATE
  2. tbl_kintai_print_his
  3. SET
  4. print_time = now(),
  5. print_emp_cd = '000000',
  6. times =select times from tbl_kintai_print_his where kokyaku_cd = '000002' AND
  7. sagyo_ymd = '2015-01-30'
  8. + 1,
  9. pattern = '055' ,
  10. ko_item_1 = 'no.0' ,
  11. ko_item_2 = 'no.2' ,
  12. ko_item_3 = 'no.3' ,
  13. ko_item_4 = 'no.4' ,
  14. ko_item_5 = 'no.5'
  15. WHERE
  16. kokyaku_cd = '000002' AND
  17. sagyo_ymd = '2015-01-30'

 能实现,不过效率肯定不高,要进行查询两次

pgsql里面提供一个函数能完成这个操作:

  1. UPDATE
  2. tbl_kintai_print_his
  3. SET
  4. print_time = now(),
  5. print_emp_cd = '000000',
  6. times = COALESCE (SUM(times),0)+ 1,
  7. pattern = '055' ,
  8. ko_item_1 = 'no.0' ,
  9. ko_item_2 = 'no.2' ,
  10. ko_item_3 = 'no.3' ,
  11. ko_item_4 = 'no.4' ,
  12. ko_item_5 = 'no.5'
  13. WHERE
  14. kokyaku_cd = '000002' AND
  15. sagyo_ymd = '2015-01-30'

 能直接取到上一次的结果进行添加

 

二:还有一种用法就是在几个字段中取值,从前往后,一直取到不为NULL的值为止。

 

 select id , name ,coalesce(Ph_no,Alt_no,Office_no) as contact number from employee 

我们可以通过这样的语句,来得到Ph_no,Alt_no,Office_no这几个字段中,第一个不存在null的数值,上面的语句得到

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/1000684
推荐阅读
相关标签
  

闽ICP备14008679号