SQL:using子句用" ORDER BY"

时间:2014-11-20 08:53:34

标签: mysql filter clause

我在SQL表中有一个订单列表,对于每个订单,我都有一个送货国家代码。

示例:

order     country_code
X00145    GB
X00178    FR
D55454    AL
E54566    GB
F59565    IE
O84849    ES
K54545    US
N61465    GB
W65478    GB

我正在尝试对输出进行排序,因此首先按字母顺序返回到country_code GB的订单,然后将GB订单放在最后(就像上面的示例中的IE和US之后) )。

使用“ORDER BY”只允许我使用ASC或DESC进行过滤。有没有办法使用一个条款和“ORDER BY”? (我想不是因为我在网上找不到任何东西)?

3 个答案:

答案 0 :(得分:1)

对于MySQL你可以做

select * from your_table
order by country_code = 'GB', 
         country_code,
         `order`

或一般

select * from your_table
order by case when country_code <> 'GB' then 1 else 2 end, 
         country_code,
         `order`

答案 1 :(得分:0)

您可以使用order by field()

select * from table_name
order by field(country_code,'GB') desc,country_code

<强> DEMO

答案 2 :(得分:0)

试试这个:

select * from yourtable where  country_code != 'GB' order by country_code

Union 

select * from yourtable where  country_code = 'GB'