所以我想...
编写一个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?
答案 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