好的,所以我有这个带有rowcount和count的SQL查询失败,就像下面的例子一样。
|CountFound|CountFailed|
|----------|-----------|
| 6510 | 979 |
问题是,如何进行查询以显示百分比(%)失败。像下面的例子..
|CountFound|CountFailed|PercentageFailed|
|----------|-----------|----------------|
| 6510 | 979 | 15.03% |
答案 0 :(得分:2)
这很简单
select (CountFailed * 1.0 / NULLIF(CountFound,0)) * 100
From yourtable
如果列中的任何一列没有小数部分,则显式将其转换为十进制/浮点值以避免整数除法
使用NULLIF
来避免除以零错误
答案 1 :(得分:1)
我认为你可以用一种非常独立于数据库的方式做你想做的事情:
select concat(cast(cast(CountFailed * 1.0 / nullif(CountFound, 0) as decimal(5, 2)) as varchar(255)), '%') as PercentageFailed
from t;
当然,我会这样做:
select CountFailed * 1.0 / nullif(CountFound, 0)
我认为没有理由将此格式设置为数据库输出的百分比。
(* 1.0
只是因为如果操作数都是整数,一些数据库会进行整数除法;有些则不是。)
答案 2 :(得分:1)
如果SQL Server
Select CountFound
,CountFailed
,PercentageFailed = Format((CountFailed*1.0)/NULLIF(CountFound,0),'0.00%')
From YourTable