代码之家  ›  专栏  ›  技术社区  ›  DevelopingChris

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

  •  1
  • DevelopingChris  · 技术社区  · 16 年前

    我想在一个不能将字符串字段转换为数字的表中查找所有实例。 有没有一种方法可以像T-SQL中的“try”这样做,这样我就可以获取转换失败的所有ID并删除该值?

    2 回复  |  直到 12 年前
        1
  •  4
  •   p.campbell    12 年前
    select *
    from yourTable
    Where ISNUMERIC(yourField) = 0
    
        2
  •  1
  •   stogdilla    16 年前

    我不是T-SQL用户,因此请将此作为免责声明。抱歉,如果这不是您问题的完美答案,但是我使用的是MySQL,它可以使用正则表达式。现在取决于你真正的目标……这可能不是您的最终解决方案,但下面是一个我可以运行的查询的快速示例:

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

    但同样不确定T-SQL是否可以做到这一点,而是通过以下链接: http://www.sqlteam.com/article/regular-expressions-in-t-sql 好像是的。希望这至少是您解决方案的开始。

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

    希望这有帮助!