试图在mySQL的新列中将计算舍入到2位小数

时间:2016-04-19 01:21:27

标签: mysql sql mysql-workbench

所以我想...

  

编写一个SELECT语句,从Products表中返回这些列名和数据:

     
      
  • product_name
  •   
  • list_price
  •   
  • discount_percent
  •   
  • DISCOUNT_AMOUNT      
        
    • 根据前两列计算的列
    •   
  •   
  • discount_price      
        
    • 根据前三列计算的列
    •   
  •   
     

将discount_amount和discount_price列舍入为2位小数。

     

按折扣价格按降序对结果集进行排序。

     

使用LIMIT子句,因此结果集仅包含前5行。

到目前为止我已经

USE my_guitar_shop;

SELECT product_name, list_price, discount_percent,
             CONCAT(discount_percent / 100 * list_price)
                AS discount_amount
FROM products

我可以返回discount_amount,但无法将列舍入到2位小数。

我怎样才能返回第二列?如

ROUND(list_price - discount_amount, 2) 
AS discount_price  

它说它无法识别discount_amount?

1 个答案:

答案 0 :(得分:2)

使用ROUND()代替CONCAT。

ROUND(discount_percent / 100 * list_price, 2)

第一个参数是要舍入的数字。第二个参数是要舍入到的小数位数。

http://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html#function_round

  

块引用   我怎么会回到第二列呢?如

ROUND(list_price - discount_amount, 2) 
AS discount_price  

您无法重复使用此类别名。我只想重复一下表达式

ROUND(list_price - (discount_percent / 100 * list_price), 2) 
AS discount_price