现在表结构是这样的。
C
-------------------
id num1 num2 num3
1 5904.000000000 2.020000000 233.000400000然后 把查询的结果集 变成
id num1 num2 num3
1 5904 2.02 233.0004就是num1 控制精度为0
num2控制精度为2
num3 控制精度为4? 这样的效果 如何做??
C
-------------------
id num1 num2 num3
1 5904.000000000 2.020000000 233.000400000然后 把查询的结果集 变成
id num1 num2 num3
1 5904 2.02 233.0004就是num1 控制精度为0
num2控制精度为2
num3 控制精度为4? 这样的效果 如何做??
cast(num2 as decimal(18,2))
cast(num3 as decimal(18,4))
返回数字表达式并四舍五入为指定的长度或精度。语法
ROUND ( numeric_expression , length [ , function ] )
cast(num2 as decimal(18,2))
cast(num3 as decimal(18,4))关键字 as 有语法错误
select id,cast(num1 as decimal(10,0)) as num1,cast(num2 as decimal(10,2)) as num2,cast(num3 as decimal(10,4)) as num3 from C
set @num1=5904.000000000
select cast(@num1 as decimal(18,0))
select cast(@num1 as decimal(18,2))
select cast(@num1 as decimal(18,4))
/*
---------------------------------------
5904(1 行受影响)
---------------------------------------
5904.00(1 行受影响)
---------------------------------------
5904.0000
insert into c values(1 ,5904.000000000 ,2.020000000 ,233.000400000)
goselect id ,
num1 = cast(num1 as decimal(18,0)),
num2 = cast(num2 as decimal(18,2)),
num3 = cast(num3 as decimal(18,4))
from cdrop table c/*
id num1 num2 num3
----------- -------------------- -------------------- --------------------
1 5904 2.02 233.0004(所影响的行数为 1 行)
*/