Bạn nên có db thực hiện việc này thay vì ứng dụng của mình:
select t.id_prfx, max(t.id_num) as latest_num from
(select substring(id, 1, 3) as id_prfx,
cast(substring(id,4) as integer) as id_num) t
group by id_prfx
Điều này sẽ cung cấp cho bạn một bảng kết quả trong đó bạn nhận được số phần cao nhất cho mỗi tiền tố.
Nếu bạn thực sự chỉ muốn tiền tố của 'ABC' thì:
select max(cast(substring(id,4) as integer)) as max_num from table
where id LIKE 'ABC%'