Просто попробуйте привести item_no
к целому числу (я полагаю, оно не числовое).
with tab(numbers) as
(
select nullif(left(item_no, strpos(item_no, '_') - 1),'')::integer from "table"
)
select numbers
from tab
where numbers > 1623
(не видя картинки, учитывая комментарий , все данные заканчиваются на-номер ) все данные, состоящие из цифр до последнего символа.
Или попробуйте извлечь цифры только как:
with tab(numbers) as
(
select nullif(regexp_replace(col, '\D','','g'),'')::integer from "table"
)
select numbers
from tab
where numbers > 1623
Демо