sql float zero padding

时间:2013-12-11 14:40:50

标签: mysql sql

我想知道是否有办法将SQL中的浮点数转换为小数点后的零填充数,例如,如果我有下表:

.--------------------.-------.
|        name        | grade |
.--------------------.-------.
| courseE            | 5     |
| courseG            | 4     |
| courseB            | 2.5   |
| courseC            | 2.5   |
| courseF            | 1.25  |
| courseD            | 0     |

我想将字段grade转换为zerro填充数字,结果如下:

.--------------------.-------.
|        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将字段等级转换为float,但为什么它不能与我一起使用?!

提前致谢

2 个答案:

答案 0 :(得分:1)

select  convert(decimal(10, 3), @number)

数字“3”表示“。”之后所需的小数位数。

答案 1 :(得分:1)

您的错误始于float - 因为CAST()转换没有此类数据类型可用。相反,您应该使用DECIMAL,这也允许您设置小数和数字部分:

SELECT name, CAST(grade AS DECIMAL(4, 3)) FROM t

关于格式:第一个数字表示保留decimal值的位数,而第二个数字表示十进制位数(即之后)点)。更确切地说,它不是格式,它是某些数据类型限制定义(因为decimal是MySQL中的特殊定点数据类型)< / p>

相关问题