2012-04-13 79 views
1

我有一个表的排序是这样的:排序/ MySQL的排序与两个字段

Product Price Sale 
------------------------ 
Watch  10.00 6.00 
Socks  8.00 
Pen  4.00 
Lamp  15.00 12.00 

有一个简单的方法,我可以订购产品的最低价格?

如果销售栏有一个值,我想使用该值而不是价格栏。 所以按价格升序我会得到:

Pen 
Watch 
Socks 
Lamp 

回答

6

你可以使用coalesce来实现你正在寻找的东西。

select * 
    from mytable 
order by coalesce(Sale, Price) ASC 

合并给你第一个非空值。

+0

所以简单 - 当你知道如何很容易:)非常感谢你! – penpen 2012-04-13 03:35:18

2

也许这个答案here可以帮助你。我想你想知道的是我们如何根据条件进行排序?

+0

史蒂夫的COALESCE在这里工作更简单 - 感谢您的链接,但请注意棘手的查询! – penpen 2012-04-13 03:37:20

+1

@penpen是的,我看到的答案是更简单:) – 2012-04-13 03:39:24