Как получить результат таблицы содержит числовые и строки, используя условие where - PullRequest
0 голосов
/ 11 июля 2019

У меня есть таблица, как показано ниже

enter image description here

Если я выберу item_no> '1623' из таблицы выше

Я хочу напечатать результат ниже

1666
1674
1912
1952
1953

Я пытаюсь под командой

select * from table where item_no>'1623'

Но это дает неправильный результат

Ответы [ 2 ]

1 голос
/ 11 июля 2019

использование SUBSTRING

select * from t where substring(item_no,'([0-9]+)') :: int  > 1623

DEMO

1 голос
/ 11 июля 2019

Просто попробуйте привести 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

Демо

...