私は、更新値を決定するためのネストされたcaseステートメントを含む非常に単純なupdateステートメントを作成してきました。列の説明は、両方のフィールドで同じ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
);
そのコードは機能しますが、文字列'NoItem'の代わりにt.First_Colを使用しようとすると、文字セットの不一致が発生します。
ELSE t.First_Col
END
);
動作しません。t.First_Colとt.Last_Colはどちらもnvarchar2(32)であり、とにかく必要ではないと思うキャストを使用しようとしています。
ELSE CAST(t.First_Col AS NVARCHAR2(32))
END );
ヒントやアドバイスは大歓迎です。いつものように事前に感謝します。