在Postgres 8.4中,我有一个表格,其第po_number
列的类型为varchar
.它存储带有一些特殊字符的字母数字值.我想忽略字符[/alpha/?/$/encoding/.]
,判断列是否包含数字.如果它是一个数字,那么它需要类型转换为数字,或者传递null,因为我的输出字段po_number_new
是一个数字字段.
下面是一个例子:
我厌倦了这种说法:
select
(case when regexp_replace(po_number,'[^\w],.-+\?/','') then po_number::numeric
else null
end) as po_number_new from test
但我在显式转换中遇到了一个错误: