按列中的特定值排序

时间:2017-01-30 07:18:38

标签: mysql

我有账单。现在,我想要检索所有数据,但有折扣,所以,折扣有两种类型,固定金额和百分比,百分比是十进制形式,例如:-0.10为10%,折扣必须是最后得到的和它是由asc订购的。对不起,我的英语不好。这是我的表:

id       |    bill_item_id       |      bill_item_amount
1        |    1                  |      1000
2        |    3                  |      -0.12
3        |    2                  |      -100
4        |    4                  |      -0.15

bill_item_id = 2表示折扣是固定的,如果是百分比,则bill_item_id是任意数字。

预期输出必须是:

id       |      bill_item_amount
1        |      1000
3        |      -100
4        |      -0.15
2        |      -0.12

我的查询到目前为止:

SELECT * FROM billing_details order by bill_item_amount < 0 and bill_item_amount > -1 asc

我的查询仅检查百分比折扣,但我也想查看固定折扣。订单将是正常项目,固定折扣,百分比折扣升序。

2 个答案:

答案 0 :(得分:0)

试试这个

select
  id, bill_item_amount
from
  billing_details
order by
  bill_item_amount desc;

答案 1 :(得分:0)

如果我理解正确,你需要这个:

SELECT *       
FROM billing_details 
ORDER BY  
CASE    WHEN  bill_item_amount >= 0 bill_item_amount END DESC,
CASE    WHEN  bill_item_amount < 0 THEN bill_item_amount END ASC