我有一个字符串,我想变成Numerics。问题是该字段可以包含字符,我很难做一个简单的正则表达式替换。这是一个例子,
field1
1
1.5
2adfk3
2. Section 2
0'#%0ls23
3.987
我基本上想要的是如果字段可以原生地作为数字转换,则返回Numeric,否则返回NULL。例如,我想要另一个字段
field2
1
1.5
NULL
NULL
NULL
3.987
其中field2现在是数字。这样做的最佳方式是什么?
在Excel中,我认为这最接近IFERROR
答案 0 :(得分:0)
您可以使用案例表达式和正则表达式执行此操作:
select column1,
case
when column1 ~ '^[0-9\.]+$' then column1::numeric
else null
end as column2
from the_table
正则表达式检查列的内容是否仅包含数字和点。如果是这种情况,则可以将值强制转换为数值,否则返回null