En fait, vous pouvez caster NULL
en int, vous ne pouvez tout simplement pas convertir une chaîne vide en int. En supposant que vous vouliez NULL dans la nouvelle colonne si data1
contient une chaîne vide ou NULL, vous pouvez faire quelque chose comme ceci :
UPDATE table SET data2 = cast(nullif(data1, '') AS int);
Si vous voulez une autre logique, vous pouvez utiliser par exemple (chaîne vide convertie en -1) :
UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;