3

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

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

cast((sq.Completes/sq.Screens ) as float ) as 'conv'

Completes 是较小的数字(通常是 27、38 等),而 Screens 是较大的数字(124、276 等)

但这将我的专栏作为 all 输出0s。如何让它显示 0.34 、 0.84 等

4

2 回答 2

6

试试这样:

select (cast(sq.Completes as float)/cast(sq.Screens as float)) as 'conv'

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

select round((cast(sq.Completes as float)/cast(sq.Screens as float)),2) as 'conv'

最后,以百分比形式直观地显示它:

select cast(round((cast(sq.Completes as float) /
   cast(sq.Screens as float)),2) * 100 as varchar(25)) 
   + '%' as 'conv'
于 2012-10-16T23:55:57.357 回答
2

纯数(含圆)

cast(100.0*sq.Completes/sq.Screens as decimal(6,0)) conv

有百分比

cast(cast(100.0*sq.Completes/sq.Screens as decimal(6,0)) as varchar(6)) + '%' conv
于 2012-10-17T08:17:05.917 回答