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

时间:2010-07-02 15:45:14

标签: sql-server tsql

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

'   384564'

但是在某些情况下,字段中存在非整数值。我想在WONO列中选择具有最大整数的记录,忽略那些没有整数的记录。这是什么选择声明?

1 个答案:

答案 0 :(得分:1)

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