【问题标题】:How to convert Varchar to Double in sql?如何在sql中将Varchar转换为Double?
【发布时间】:2013-01-07 21:34:27
【问题描述】:

当我尝试将 varchar 字段转换为双精度(数字)时,我的查询出现问题。我有这个sql语句:

SELECT fullName, CAST(totalBal as numeric(9,2) FROM client_info ORDER BY totalBal DESC

其实我想按降序显示totalBal的值。但由于该字段在 varchar 中,结果集有时是错误的。这是我尝试使用此语句查询时的结果集:

SELECT fullName, totalBal FROM client_info ORDER BY totalBal DESC 

结果集是:

totalBal 的排序不正确。因此,我决定将 varchar 转换为数字,以便对其进行完美排序。有什么想法吗?

【问题讨论】:

    标签: mysql sql numeric varchar


    【解决方案1】:

    使用DECIMAL()NUMERIC(),因为它们是固定精度和小数位数。

    SELECT fullName, 
           CAST(totalBal as DECIMAL(9,2)) _totalBal
    FROM client_info 
    ORDER BY _totalBal DESC
    

    【讨论】:

    • 谢谢你的想法...用这个更新了代码...SELECT fullName, CAST( totalBal AS DECIMAL( 9, 2 ) ) AS totBal FROM client_info ORDER BY totBal DESC
    【解决方案2】:

    这可能更可取,即使用 float 代替

    SELECT fullName, CAST(totalBal as float) totalBal FROM client_info ORDER BY totalBal DESC
    

    【讨论】:

    • "CAST as float" 在 MySQL 中无效。所以这根本行不通。
    • 问题是关于 SQL,而不是关于 MySQL 和 CAST,因为 float 是有效的 SQL。
    • 第一个标签是mysql,所以我回答MSSQL版本可能是我的错。
    猜你喜欢
    • 2011-08-06
    • 2012-06-26
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2021-03-26
    • 2019-08-12
    相关资源
    最近更新 更多