有这样一列字符类型,如何转换成数值类型,每个值不用0来补齐小数位数?
112.3
54665.65879
456.02046
654.265
40354.10203
145
6546463
不希望转成用0补齐小数位数.
112.30000
54665.65879
456.02046
654.26500
40354.10203
145.00000
6546463.00000
------解决方案--------------------
decimal 去了解一下
- SQL code
seelct cast (col as decimal(18,5)) from tb
------解决方案--------------------
ROUND函数可以指定需要四舍5入的小数位数!
------解决方案--------------------
推荐三个函数你可以去查查资料看看
- SQL code
ROUND()CEILING()FLOOR()
------解决方案--------------------
转换为数值类型
使用
- SQL code
numeric(18,5)decimal(18,5)
------解决方案--------------------
------解决方案--------------------
其实下面的就可以,我想复杂了,O(∩_∩)O哈哈~
- SQL code
--> 测试数据:[tb]IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GO CREATE TABLE [tb]([col] NUMERIC(12,5))INSERT [tb]SELECT 112.3 UNION ALLSELECT 54665.65879 UNION ALLSELECT 456.02046 UNION ALLSELECT 654.265 UNION ALLSELECT 40354.10203 UNION ALLSELECT 145 UNION ALLSELECT 6546463--------------开始查询--------------------------SELECT * FROM [tb]SELECT CAST(col AS FLOAT) FROM [tb]----------------结果----------------------------/* (无列名)112.354665.65879456.02046654.26540354.102031456546463*/
------解决方案--------------------
------解决方案--------------------
- SQL code
CAST(列名 AS FLOAT)