La expresión de caso no funciona correctamente en la consulta SQL

Quiero concatenar columnas desupplier tabla con separador de comas y póngalo en un campo de alias llamado 'contacto'. He usado casos para verificar valores nulos. Supongamos que sicontact_number2 es nulo entoncescontact_number3 estará en el campo de alias y viceversa. Aquí está mi consulta

SELECT supplier_Name, supplier_Address, supplier_reference, contact_Number1,
       contact_number2, contact_number3,
      (case when contact_number2 is null then contact_number3 
            when contact_number3 is null then contact_number2 
            when contact_number3 is null and contact_number2 is null then 0
         -- when contact_number2 is not null and contact_number3 is not null then  CONCAT(CONCAT(contact_number2,','), contact_number3)
       end) as contact
FROM SUPPLIER

Si uso la cuarta condición, entonces funciona, pero si uso la condición múltiple, entonces no funciona. El error esORA-00932: inconsistent datatypes: expected NUMBER got CHAR 00932. 00000 - "inconsistent datatypes: expected %s got %s"

Respuestas a la pregunta(4)

Su respuesta a la pregunta