在T-SQL中,如何获得一个包含2个小数点(或百分比)的列?

Cof*_*fee 3 t-sql sql-server math arithmetic-expressions sql-server-2008

在SQL Server 2008中,我正在运行一个报表,我需要分割两列(称为整数CompletesPrescreens整数),然后我转到Excel并将其Prescreens除以Completes,并将其转换为带有2位小数的数字,然后将其转换为百分比.即 - > 0.34,然后变为34%.

在SQL中我知道我可能无法将输出视为"34%",但至少我希望它为0.34.到目前为止,我有:

cast((sq.Completes/sq.Screens ) as float ) as 'conv'
Run Code Online (Sandbox Code Playgroud)

完成是较小的数字(通常是27,38等),屏幕是较大的数字(124,276等)

但这是输出我的专栏0s.如何让它显示0.34,0.84等

RTh*_*mas 6

试试这样:

select (cast(sq.Completes as float)/cast(sq.Screens as float)) as 'conv'
Run Code Online (Sandbox Code Playgroud)

您也可以这样做来舍入值:

select round((cast(sq.Completes as float)/cast(sq.Screens as float)),2) as 'conv'
Run Code Online (Sandbox Code Playgroud)

最后,这将以视觉方式显示为百分比:

select cast(round((cast(sq.Completes as float) /
   cast(sq.Screens as float)),2) * 100 as varchar(25)) 
   + '%' as 'conv'
Run Code Online (Sandbox Code Playgroud)