実際には、NULL
をキャストできます intに、空の文字列をintにキャストすることはできません。 data1
の場合、新しい列にNULLが必要であると想定します。 空の文字列またはNULLが含まれている場合は、次のように実行できます。
UPDATE table SET data2 = cast(nullif(data1, '') AS int);
他のロジックが必要な場合は、たとえば(空の文字列は-1に変換されます)を使用できます:
UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;