cast((sum(case when day(OQCTime)=1 then BadNo else 0 end)/cast(sum(case when day(OQCTime)=1 then floor(TestNo)else 0 end)as decimal(15,0))*1000000)as decimal(15,0)) as [1]
SELECT cast(1./9802*1000000 as int) AS VAL
SELECT 1./9802*1000000 AS VAL
SELECT cast(1.0/9802*1000000 as int) AS VAL
整数 除以 整数 结果还是整数 故而为0SELECT 1.0/9802*1000000 AS VAL改成1.0 就不同了。
SELECT 1 /9802.*1000000 AS VAL
SELECT cast(1*1.0/9802*1000000 as decimal(18,0)) AS VAL正如叶子所说,将其中一个转换成小数,SQL会自动将结果也转换成小数。
select cast(1.0/9802*1000000 as int) val
select convert(int,1.0/9802*1000000) AS val
整数和小数的区别~嘻嘻~以后会注意~lz想要哪个数据呢~SELECT 1 /9802.*1000000 AS VAL 结果:102.000000 SELECT 1/9802*1000000 AS VAL 结果:0 SELECT cast(1./9802*1000000 as int) AS VAL 结果:102
SELECT cast(1./9802*1000000 as int) AS VAL
SELECT cast(1.0/9802*1000000 as int) AS VAL
SELECT cast(1*1.0/9802*1000000 as decimal(18,0)) AS VAL正如叶子所说,将其中一个转换成小数,SQL会自动将结果也转换成小数。
select convert(int,1.0/9802*1000000) AS val
结果:102.000000
SELECT 1/9802*1000000 AS VAL
结果:0
SELECT cast(1./9802*1000000 as int) AS VAL
结果:102