我在尝试使用以下逻辑时收到作为问题提到的错误,
Select case when T2.val is not null then T2.CD ELSE CASE WHEN T3.VAL <> '~' OR T3.VAL = 'FM' THEN ['F','M'] ELSE T3.VAL END END AS FVAL FROM (SELECT * FROM TABLE3) T3 LEFT JOIN (SELECT * FROM TABLE2) T2 ON T2.VAL = T3.VAL;
注意 - 上列中提到的所有列都是字符串数据类型
Select case when T2.val is not null then T2.CD ELSE CASE WHEN T3.VAL <> '~' OR T3.VAL = 'FM' THEN ['F','M'] ELSE T3.VAL END END AS FVAL FROM (SELECT * FROM TABLE3) T3 LEFT JOIN (SELECT * FROM TABLE2) T2 ON T2.VAL = T3.VAL;
当满足上述条件时,我想将 FVAL 列中的值填充为 F,M。
提前感谢您的帮助
这部分:THEN ['F','M'] 它返回一个字符串数组,而其他部分则输出字符串。您需要有一致的输出类型,无论是数组还是字符串