it-swarm.com.de

FEHLER: CASE-Typen mit unterschiedlichen und numerischen Zeichen können nicht zugeordnet werden

Ich schreibe eine Select-Anweisung in Postgres, die folgende case-Anweisung enthält:

,(case when all_loc.country = 'DE' then msc_si.buyer_id else msc_si.buyer_name end) as "purchasing_group_name_buyer_name"  --story
,(case when all_loc.country = 'DE' then msc_si.planner_code else mscp.description end) as "mrp_controller_name"                --story

Ich erhalte den folgenden Fehler. Ich habe versucht, mit IS anstelle von =, Hat nicht funktioniert. Ohne diese beiden Anweisungen case läuft die Abfrage einwandfrei.

FEHLER: Es können keine übereinstimmenden CASE-Typen mit unterschiedlichen und numerischen Zeichen angegeben werden. SQL-Status: 42804

11
Abhijit

Alle Zweige eines case-Ausdrucks sollten denselben Datentyp zurückgeben. Eine Möglichkeit, dies zu erreichen, besteht darin, bei Bedarf explizit zu besetzen:

,(case when all_loc.country = 'DE' then msc_si.buyer_id::varchar else msc_si.buyer_name end) as "purchasing_group_name_buyer_name"
-- Here -----------------------------------------------^
,(case when all_loc.country = 'DE' then msc_si.planner_code::varchar else mscp.description end) as "mrp_controller_name"
-- And gere -----------------------------------------------^
19
Mureinik