Du kan faktiskt casta NULL
till int, du kan bara inte kasta en tom sträng till int. Förutsatt att du vill ha NULL i den nya kolumnen om data1
innehåller en tom sträng eller NULL, kan du göra något så här:
UPDATE table SET data2 = cast(nullif(data1, '') AS int);
Om du vill ha någon annan logik kan du till exempel använda (tom sträng konverterar till -1):
UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;