【问题标题】:How can I get the greatest string value that can be converted to an int from SQL server?如何获得可以从 SQL 服务器转换为 int 的最大字符串值?
【发布时间】:2011-03-11 04:16:40
【问题描述】:

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

'   384564'

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

【问题讨论】:

    标签: sql-server tsql


    【解决方案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

    【讨论】:

    • 当 WONO = '.' 时阻塞我来看看那个自定义函数。
    • 是的,忘记了。我检查了 IsReallyNumeric,它处理 '.'
    • 链接功能就像一个魅力。接受你的回答,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2017-07-03
    相关资源
    最近更新 更多