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

时间:2013-01-24 07:35:25

标签: mysql sql numeric varchar

当我尝试将varchar字段转换为double(数字)时,我的查询出现问题。我有这个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 

结果集是:

enter image description here

totalBal的排序不正确。所以我决定将varchar转换为数字,以便它可以完美地排序。有什么想法吗?

2 个答案:

答案 0 :(得分:25)

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

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

答案 1 :(得分:0)

这可能更合适,即使用float而不是

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