如何选择varchar字段包含非数字字符的所有行?

时间:2009-05-20 00:59:55

标签: database tsql

我想在表中查找字符串字段无法转换为数字的所有实例。 有没有办法像t-sql中的“try”那样做,以便我可以获得所有转换失败的id并删除值?

2 个答案:

答案 0 :(得分:4)

select *
from yourTable
Where ISNUMERIC(yourField) = 0

答案 1 :(得分:1)

我不是t-SQL用户,所以请将此作为免责声明。对不起,如果它不是你的问题的完美答案,但我使用MySQL可以使用正则表达式。现在取决于你真正想要做的事情..这可能不是你的最终解决方案,但这里是我可以运行的查询的快速示例:

SELECT * FROM table WHERE columnName REGEXP '^[0-9]+$' 

但是再次不确定t-sql是否可以通过此链接执行此操作:http://www.sqlteam.com/article/regular-expressions-in-t-sql它似乎确实如此。希望这至少是您解决方案的开始。

同样,不完全确定你的最终用途是什么......但如果我只想要数字,我会在将数据加载到数据库之前使用某种清理,而不是事后清理...我总是觉得这是更容易的路线。 (您可能已经开始使用预先存在的数据)

希望这有帮助!