Oracle
 sql >> Database >  >> RDS >> Oracle

L'espressione case non funziona correttamente nella query sql

Il terzo caso prevede un VARCHAR e stai fornendo un INT a causa del quale restituisce un errore. Il cambiamento è stato che ho sostituito 0 con '0'. Prova questo:

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