PostgreSQL COALESCE使用方法代码解析
有这种要求,更新自己本身的字段的某个值进行加或者减
常规方法:
UPDATE tbl_kintai_print_his SET print_time=now(), print_emp_cd='000000', times=(selecttimesfromtbl_kintai_print_hiswherekokyaku_cd='000002'AND sagyo_ymd='2015-01-30') +1, pattern='055', ko_item_1='no.0', ko_item_2='no.2', ko_item_3='no.3', ko_item_4='no.4', ko_item_5='no.5' WHERE kokyaku_cd='000002'AND sagyo_ymd='2015-01-30'
能实现,不过效率肯定不高,要进行查询两次
pgsql里面提供一个函数能完成这个操作:
UPDATE tbl_kintai_print_his SET print_time=now(), print_emp_cd='000000', times=COALESCE(SUM(times),0)+1, pattern='055', ko_item_1='no.0', ko_item_2='no.2', ko_item_3='no.3', ko_item_4='no.4', ko_item_5='no.5' WHERE kokyaku_cd='000002'AND sagyo_ymd='2015-01-30'
能直接取到上一次的结果进行添加
二:还有一种用法就是在几个字段中取值,从前往后,一直取到不为NULL的值为止。
selectid,name,coalesce(Ph_no,Alt_no,Office_no)ascontactnumberfromemployee
我们可以通过这样的语句,来得到Ph_no,Alt_no,Office_no这几个字段中,第一个不存在null的数值,上面的语句得到
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。