Pgsql 裡面 COALESCE的用法

2021-10-23 03:12:22 字數 1526 閱讀 9426

有這種要求,更新自己本身的字段的某個值進行加或者減,

常規方法:

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'

能實現,不過效率肯定不高,要進行查詢兩次

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的值為止。

select id , name ,

coalesce

(ph_no,alt_no,office_no)

as contact number from employee

我們可以通過這樣的語句,來得到ph_no,alt_no,office_no這幾個欄位中,第乙個不存在null的數值,上面的語句得到

DB2裡面的coalesce函式

coalesce 返回其引數中第乙個非空表示式 語法 coalesce expression1,expression2,expression n 所有表示式必須型別相同,或者可以隱式轉換為相同型別 返回型別 將相同的值作為 expression 返回。注釋 如果所有自變數均為 null,則 coal...

coalesce重新分割槽

coalesce重新分割槽,可以設定引數為true或者false 1 如果設定為true,則不需要進行分割槽,如果設定為false,則需要進行分割槽 2 false不需要進行分割槽,也不產生shuffle,true會產生分割槽,也會產生shuffle 3 如果重新分割槽的數量大於之前的分割槽的數量,...

coalesce 函式詳解

coalesce 函式 返回列表中第乙個非null表示式的值。如果所有表示式求值為null,則返回null。coalesce expression 1,expression 2,expression n 依次參考各引數表示式,遇到非null值即停止並返回該值。如果所有的表示式都是空值,最終將返回乙個...