SELECT
ci_inb_inv_id
,(item_seq_nbr*100)+94
,case when cor_val_txt > 0 then 'C'
when cor_val_txt < 0 then 'A'
else 'A'
end
,item_seq_nbr
,cor_val_txt
,'DA'
,'O'
,'O'
,current_timestamp(0)
,user
这是我得到的错误
ERROR: operator does not exist: character varying > integer
LINE 180: ,case when cor_val_txt > 0 then 'C'
答案 0 :(得分:0)
您不能将整数与字符串进行比较,PostgreSQL是严格的,并且不会为您做任何魔术转换。
所以我认为您需要使用::
让cor_val_txt
转换为INTEGER
然后进行比较。
SELECT
ci_inb_inv_id
,(item_seq_nbr*100)+94
,case when cor_val_txt::INTEGER > 0 then 'C'
when cor_val_txt::INTEGER < 0 then 'A'
else 'A'
end
,item_seq_nbr
,cor_val_txt
,'DA'
,'O'
,'O'
,current_timestamp(0)
,user