【问题标题】:In T-SQL how can I get a column of 2-decimal points(or percentages)?在 T-SQL 中,如何获得一列 2 小数点(或百分比)?
【发布时间】:2012-10-07 04:04:23
【问题描述】:

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

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

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

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

但这会将我的列输出为所有 0s 。如何让它显示 0.34 、 0.84 等

【问题讨论】:

    标签: sql-server sql-server-2008 tsql math arithmetic-expressions


    【解决方案1】:

    试试这样:

    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'
    

    【讨论】:

    • 好的,我也更新了我的答案以获得你提到的其他格式 34%
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2013-06-14
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多