In the field INFNR there is never a null value but an empty value. So you can not use coalesce here because infnr is always set
SELECT * FROM EKPO WHERE INFNR = '' ... returns a lot of results
SELECT * FROM EKPO WHERE INFNR is null ... returns no results
So in your case you should use matkl if infnr = ''
Best regards, Andreas