Nie napisałeś, której wersji używasz, więc zakładam, że najnowszej.
with cte (col1) as
(
select max(num2) from tbl_test
)
update tbl_test set num2 = (select col1 from cte);
Jeśli chcesz napisać to innym sposobem, to pamiętaj, że UPDATE tak jakby UPDATE'uje tylko jeden record. Napisałem tak jakby, ponieważ dla Twojego przykładu wykonanie MAX zadziała, ale wykona MAX dla pierwszego wiersza i MAX dla drugiego, czyli zaaktualizuje record'y na takie same wartości jakie były przedtem. Przykład:
update tbl_test set num2 = (select max(num2));
Wystarczy napisać po znaku równości, np. to (SELECT 99) i wtedy zobaczysz efekt. Możliwe, że jakimś słowem kluczowym (keyword) dałoby się wymusić przeszukanie wszystkich pól (record'ów) i dopiero po zwróceniu tejże wartości nastąpiłby UPDATE, ale tego musiałbyś poszukać/doszukać.