--SQL中的相除
SELECT CASE WHEN ISNULL(A+B,0)<>0 THEN
LTRIM(CONVERT(DEC(18,2),A*100.0/(A+B)))+'%' ELSE '' END AS '百分数'
FROM TB
--
百分比的不同格式
select
LTRIM ( CONVERT ( DEC ( 18 , 2 ), 42 * 100.0 / 96 )) + ' % ' AS ' 百分数string ' , -- DEC=decimal
CONVERT ( decimal ( 10 , 2 ), 42 * 100.0 / 96 ) AS ' 百分数dec ' , -- 100 与 100.0是不一样的
CONVERT ( decimal ( 10 , 2 ), 42 * 100 / 96 ) AS ' 没有保留到小数点 '
-- from Tb
order by 百分数dec desc
-- 43.75% 43.75 43.00
-- 方法二:
Select ( Convert ( varchar ( 50 ), Round ( 42 * 100.0 / 96 , 3 )) + ' % ' ) as 百分比 -- from A
-- 43.750000%
select
LTRIM ( CONVERT ( DEC ( 18 , 2 ), 42 * 100.0 / 96 )) + ' % ' AS ' 百分数string ' , -- DEC=decimal
CONVERT ( decimal ( 10 , 2 ), 42 * 100.0 / 96 ) AS ' 百分数dec ' , -- 100 与 100.0是不一样的
CONVERT ( decimal ( 10 , 2 ), 42 * 100 / 96 ) AS ' 没有保留到小数点 '
-- from Tb
order by 百分数dec desc
-- 43.75% 43.75 43.00
-- 方法二:
Select ( Convert ( varchar ( 50 ), Round ( 42 * 100.0 / 96 , 3 )) + ' % ' ) as 百分比 -- from A
-- 43.750000%