我在堆栈中看到一个帖子,里面的问答和我的问题非常相似。
这篇文章是:
MySQL: turn decimal into percent within view
如上所述,使用:
CONCAT(columnname * 100, '%')
我就是这么做的。
我有一张表,上面有一列具体工资范围的百分比。
这是工资扣除表。
我将百分比值作为十进制数据类型存储在“ee”列中。
ee | decimal(4,4) | not null
我的问题是它给了我这个结果,而不是我想要的。
例如,列中的一个条目是
0.0200
,我想在查看时显示为“2%
”,但这就是我得到的。select s_b,rangeA,rangeB,concat(ee * 100,'%') as 'ee_percent' from htbl;
+___________________________________+
|s_b| rangeA| rangeB|ee_percent |
+---+--------+---------+------------+
| 1| 0.00| 1500.00| 1.0000% |
| 2| 1500.00|999999.99| 2.0000% |
+-----------------------------------+
我知道这是一个重复的基本问题,但我不知道为什么它不起作用,
如果您在我的语法或数据类型中发现错误,请告诉我。
如有任何建议和更正,我们将不胜感激。非常感谢。
最佳答案
您可以使用FORMAT
使用以下解决方案:
SELECT s_b, rangeA, rangeB, CONCAT(FORMAT(ee * 100, 0), '%') AS 'ee_percent'
FROM htbl;
计算结果总是
DECIMAL(4,4)
。所以mysql用四个小数位显示结果。您可以使用FORMAT
函数格式化结果或删除小数点的其他函数。演示:https://www.db-fiddle.com/f/ncjBpJRwdQVbT7PUBoXgeU/0