首页 > 解决方案 > 格式化为百分比

问题描述

我一直在尝试一些不同的查询,但我似乎无法获得百分比格式,我划分的两个数字都是浮点数。

SELECT p.name, s.name, CAST(CAST(ROUND(r.result/s.record, 2)*100 as DECIMAL(18, 2)) as VARCHAR(100)) + ' %'  as percentage 
FROM people p, results r, sports s 
WHERE p.ID=r.peopleID AND s.ID = r.sportID;

SELECT p.name, s.name, FORMAT((r.result/s.record), 'Percent') as percentage 
FROM people p, results r, sports s 
WHERE p.ID=r.peopleID AND s.ID = r.sportID;

SELECT p.name, s.name, FORMAT((r.result/s.record), 'P3') as percentage 
FROM people p, results r, sports s 
WHERE p.ID=r.peopleID AND s.ID = r.sportID;

SELECT p.name, s.name, FORMAT(r.result/s.record)*100 as percentage 
FROM people p, results r, sports s 
WHERE p.ID=r.peopleID AND s.ID = r.sportID;

我想要这种格式 90.32% 但我似乎得到浮点数或整数 1 和 0 其中 0.5 = 0 和 1.15 = 1

标签: sqlsql-server

解决方案


许多数据库进行整数除法。您可以通过将值转换为非整数来解决此问题:

r.result * 1.0 / s.record

您还应该学习使用正确、明确、标准 JOIN的语法。


推荐阅读