有這種要求,更新自己本身的字段的某個值進行加或者減,
常規方法:
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值即停止並返回該值。如果所有的表示式都是空值,最終將返回乙個...