代码之家  ›  专栏  ›  技术社区  ›  Brennan Vincent

如何从SQL Server获取可以转换为int的最大字符串值?

  •  2
  • Brennan Vincent  · 技术社区  · 14 年前

    我在MS SQL Server 2008中有一个表,其中有一个名为woo的varchar列。对于大多数记录,此字段的值填充在整数的左字符串表示形式上,例如:

    '   384564'
    

    但是,在某些情况下,字段中有一个非整数值。我想选择woo列中整数最大的记录,忽略那些没有整数的记录。这个select语句是什么?

    1 回复  |  直到 14 年前
        1
  •  1
  •   LittleBobbyTables - Au Revoir    14 年前
    SELECT MAX(cast(WONO as integer)) AS WONO FROM
    (
        SELECT WONO 
         FROM YourTable
        WHERE ISNUMERIC(WONO) = 1
    ) SubTable
    

    请记住,当您有1e1或2d2之类的东西时,这可能会表现得很奇怪,因为isnumeric如何处理某些字符串(1e1和2d2实际上被isnumeric视为指数)。如果这成为一个问题,您可以查看这个自定义函数, IsReallyNumeric .