Вы можете сделать что-то вроде следующего, используя dens_rank
--first select all not K3 rows and keep lx_seq same
SELECT id, element_id, element_value, lx_seq, line_num
from table1 where element_id not like 'K3%'
UNION ALL
--select K3 rows and based on id and line_num generate rank
SELECT id, element_id, element_value,
dense_rank() over (partition by id, line_num order by line_num) lx_seq,
line_num
from table1 where element_id like 'K3%'
Пример оператора обновления:
MERGE INTO table1 A USING
(
SELECT id, element_id, element_value,
dense_rank() over (partition by id, line_num order by line_num) lx_seq,
line_num
FROM table1
WHERE element_id LIKE 'K3%'
) B
ON (A.id = B.id AND A.line_num = B.line_num AND A.element_id = B.element_id)
WHEN MATCHED THEN
UPDATE SET A.lx_seq = B.lx_seq;