我一直在构建一个相当简单的更新语句,其中包括一个用于确定更新值的嵌套 case 语句。对于这两个字段,列描述是相同的 nvarchar(32)。
下面的代码
UPDATE TableA t
SET t.Last_Col =
( CASE WHEN t.First_Col = 'ItemOne'
THEN 'anItemOne'
WHEN t.First_Col = 'ItemTwo'
THEN CASE WHEN t.Second_Col = 'ItemTwo_A'
THEN 'aSecondItem_A'
ELSE 'aSecondItem'
END
ELSE 'NoItem'
END
);
该代码有效,但是当我尝试使用 t.First_Col 代替字符串 'NoItem' 时,我得到字符集不匹配。
ELSE t.First_Col
END
);
不起作用。t.First_Col 和 t.Last_Col 都是 nvarchar2(32) 并且我一直在尝试使用我认为无论如何都不需要的演员表。
ELSE CAST(t.First_Col AS NVARCHAR2(32))
END );
非常感谢任何提示或建议。一如既往地提前感谢。