显示所有数字行,反之亦然postgresql

时间:2015-02-04 10:07:40

标签: postgresql

我有一个名为" temp_table"的表。和一个名为" temp_column"的列类型varchar。问题是" temp_column"必须是整数类型。如果我只是自动将表更新为整数类型,它将生成错误,因为某些数据中包含非数字数据。

我想要一个显示所有行的查询,如果" temp_column"其中包含非数字值(或相反),并相应地更新或设置值。我很难过,因为在postgresql中没有ISNUMERIC。

怎么做?

1 个答案:

答案 0 :(得分:4)

这将显示该列中包含非整数值的所有行。它使用正则表达式来查找除了数字之外的所有其他值:

select * 
from temp_table
where temp_column ~ '[^0-9]';

这也可用于更新声明:

update temp_table
   set temp_column = null
where temp_column ~ '[^0-9]';

这也会过滤掉3.14之类的“数字”值,因为它们不是整数。