如何使用 where 条件获取 table 包含数字和字符串的结果

How to get the result of table contains numeric and strings using where condition

我有一个 table 如下所示

如果我selectitem_no>'1623'从上面table

我要打印下面的结果

1666
1674
1912
1952
1953

我正在尝试以下命令

select * from table where item_no>'1623'

但它给出了错误的结果

尝试将 item_no 转换为整数(我想是 non-numeric )。

with tab(numbers) as
(
 select nullif(left(item_no, strpos(item_no, '_') - 1),'')::integer from "table"    
)    
select numbers
  from tab
 where numbers > 1623     

(没有看到图片,考虑到注释所有数据以non-numeric字符结尾)所有数据由数字组成直到最后一个字符。

或者,尝试仅将数字提取为:

with tab(numbers) as
(
 select nullif(regexp_replace(col, '\D','','g'),'')::integer from "table"    
)    
select numbers
  from tab
 where numbers > 1623

Demo

使用SUBSTRING

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

DEMO