我有一个名为" temp_table"的表。和一个名为" temp_column"的列类型varchar。问题是" temp_column"必须是整数类型。如果我只是自动将表更新为整数类型,它将生成错误,因为某些数据中包含非数字数据。
我想要一个显示所有行的查询,如果" temp_column"其中包含非数字值(或相反),并相应地更新或设置值。我很难过,因为在postgresql中没有ISNUMERIC。
怎么做?
答案 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
之类的“数字”值,因为它们不是整数。