Postgres查询:查找不是数字​​的值

时间:2017-11-09 18:25:11

标签: sql postgresql

我一直使用自己的自定义导入脚本将数据从Pandas Dataframe导入到postgres数据库中。不幸的是,我的数据并不整齐,导致我的每一列都被解析为文本。有什么方法可以获得某个列值不是数字的条目吗?我的计划是删除这些记录并将列转换为数字类型

谢谢!

1 个答案:

答案 0 :(得分:3)

获取没有数字的记录,然后你必须使用以下正则表达式:

DELETE FROM myrecords WHERE record ~ '^[^0-9]+$';

这里,方括号外的^字符表示字段的开头,$字符表示字段的结尾,我们要求中间的所有字符都是非数字。 +表示应该至少有一个这样的字符。如果我们还允许空字符串,则正则表达式看起来像^[^0-9]*$

如果你想要包含数字和小写字母的记录,那么我希望有一个正则表达式:

DELETE FROM myrecords WHERE record ~ '[0-9a-z]';