我想知道是否有一种方法可以将SQL中的浮点数转换为小数点之后的零填充数,例如,如果我有下表:
.--------------------.-------.
| name | grade |
.--------------------.-------.
| courseE | 5 |
| courseG | 4 |
| courseB | 2.5 |
| courseC | 2.5 |
| courseF | 1.25 |
| courseD | 0 |我希望将字段grade转换为零填充数字,结果如下:
.--------------------.-------.
| name | grade |
.--------------------.-------.
| courseE | 5.000 |
| courseG | 4.000 |
| courseB | 2.500 |
| courseC | 2.500 |
| courseF | 1.250 |
| courseD | 0.000 |我已经尝试转换场等级为浮动由usibg的CAST(EXP) AS FLOAT,但为什么它没有与我一起工作?!
提前感谢
发布于 2013-12-11 14:50:11
您的错误从float开始--因为没有可用于CAST()转换的此类数据类型。相反,您应该使用DECIMAL,它还允许您设置十进制和数字部分:
SELECT name, CAST(grade AS DECIMAL(4, 3)) FROM t关于格式:第一个数字表示有多少总数字将容纳您的decimal值,而第二个数字表示将有多少十进制数字(即在点之后)。更确切地说,它不是格式,而是特定的数据类型限制定义(因为decimal是MySQL中一种特殊的定点数据类型)。
发布于 2013-12-11 14:49:37
select convert(decimal(10, 3), @number)"3“表示”3“之后的小数。
https://stackoverflow.com/questions/20522020
复制相似问题