如何使用 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
使用SUBSTRING
select * from t where substring(item_no,'([0-9]+)') :: int > 1623
我有一个 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
使用SUBSTRING
select * from t where substring(item_no,'([0-9]+)') :: int > 1623