如何在sql中将Varchar转换为Double?

Jay*_*arz 14 mysql sql varchar numeric

当我尝试将varchar字段转换为double(数字)时,我的查询有问题.我有这个sql语句:

SELECT fullName, CAST(totalBal as numeric(9,2) FROM client_info ORDER BY totalBal DESC
Run Code Online (Sandbox Code Playgroud)

实际上我想以totalBal降序显示值.但由于该字段位于varchar中,因此结果集有时是错误的.当我尝试使用此语句进行查询时,这是结果集:

SELECT fullName, totalBal FROM client_info ORDER BY totalBal DESC 
Run Code Online (Sandbox Code Playgroud)

结果集是:

在此输入图像描述

排序totalBal不正确.所以我决定将varchar转换为数字,以便它可以完美地排序.任何的想法?

Joh*_*Woo 28

使用DECIMAL()NUMERIC()因为它们是固定的精度和比例数.

SELECT fullName, 
       CAST(totalBal as DECIMAL(9,2)) _totalBal
FROM client_info 
ORDER BY _totalBal DESC
Run Code Online (Sandbox Code Playgroud)