The problem isn't with app_sys_no - it's because obligor is, presumably, character and 0 is of course numeric.
If you change your case statements to read as follows you should be OK
count(distinct (case when app_sys_no = '337' then obligor_no else "" end)) as Cnt337,
count(distinct (case when app_sys_no = '339' then obligor_no else "" end)) as Cnt339,
count(distinct (case when app_sys_no = '342' then obligor_no else "" end)) as Cnt342,
count(distinct (case when app_sys_no = '362' then obligor_no else "" end)) as Cnt362
... View more