域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)
這篇文章主要介紹了PostgreSQL COALESCE使用方法代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
有這種要求,更新自己本身的字段的某個(gè)值進(jìn)行加或者減
常規(guī)方法:
UPDATE
tbl_kintai_print_his
SET
print_time = now(),
print_emp_cd = '000000',
times = (select times from tbl_kintai_print_his where kokyaku_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'
能實(shí)現(xiàn),不過(guò)效率肯定不高,要進(jìn)行查詢兩次
pgsql里面提供一個(gè)函數(shù)能完成這個(gè)操作:
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'
能直接取到上一次的結(jié)果進(jìn)行添加
二:還有一種用法就是在幾個(gè)字段中取值,從前往后,一直取到不為NULL的值為止。
select id , name ,coalesce(Ph_no,Alt_no,Office_no) as contact number from employee
我們可以通過(guò)這樣的語(yǔ)句,來(lái)得到Ph_no,Alt_no,Office_no這幾個(gè)字段中,第一個(gè)不存在null的數(shù)值,上面的語(yǔ)句得到
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
文章來(lái)源:腳本之家
來(lái)源地址:https://www.jb51.net/article/201993.htm
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!