На самом деле, вы можете привести NULL
к int, вы просто не можете привести пустую строку к int. Предполагая, что вы хотите NULL в новом столбце, если data1
содержит пустую строку или 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;