我有一个如下表
如果我从上表中选择item_no>'1623'
我想在下面打印结果
1666
1674
1912
1952
1953
我正在尝试使用命令
select * from table where item_no>'1623'
但是它给出了错误的结果
答案 0 :(得分:1)
只需尝试将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
答案 1 :(得分:1)