sql >> Databasteknik >  >> RDS >> Oracle

Case-uttryck fungerar inte korrekt i sql-fråga

Det tredje fallet förväntar sig en VARCHAR och du tillhandahåller en INT på grund av vilket det returnerar ett fel. Ändring var att jag ersatte 0 med '0'. Prova detta:

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


  1. mysql - Hur sammanfogar man strängar och konverterar till att datera strängarna?

  2. Hur ser man typen av en variabel i PL/SQL?

  3. Föråldrade funktioner att ta ur din verktygslåda – Del 2

  4. mysql:arbetar kring implicita transaktionsförpliktelser?