sql - 格式化为百分比

标签 sql sql-server

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

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% 但我似乎得到 float 或整数 1 和 0 其中 0.5 = 0 和 1.15 = 1

最佳答案

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

r.result * 1.0 / s.record

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

关于sql - 格式化为百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54432578/

相关文章:

sql-server - 存储过程和 OPTIMIZE FOR UNKNOWN

sql - 在Oracle SQL中串联字符串之间是否没有空格?

php - 查询时对相关模型的 Yii 限制

sql - Postgres : Returning first 3 characters of a JSON property

sql-server - 如何借助 Sys.Columns 中的列名获取父表的名称

SQL Server - 列数据类型和镶嵌方案不匹配

sql语法中的php mysqli转义字符串错误

MySQL 无法识别 WHERE 中的日期时间索引

sql-server - 如何使用 FOR JSON PATH 将带有键/值对的表查询到 JSON 对象中?

c# - 从 SQL Server 检索到的日期格式错误