如何通过oracle中的字段来排序列?

时间:2018-01-30 16:05:53

标签: sql oracle

如果我有一个类似这个例子的表:

 - Table: Users
 - id - name -  city
 - 1    George  Seattle
 - 2    Sam     Seatle-2
 - 3    John    New York
 - 4    Amy     New York-2
 - 5    Eric    Chicago
 - 6    Nick    New York-3

使用该表我想查询返回包含New York的行,New York-2,----然后按城市按字母顺序排列其余行。这可以只使用一个查询吗?

2 个答案:

答案 0 :(得分:2)

order by子句支持多个键,包括表达式:

order by (case when city like 'New York%' then 1 else 2 end),
         city

答案 1 :(得分:1)

SELECT   id,
    name,
    city
  ORDER BY (
    CASE
      WHEN city LIKE 'New York%'
      THEN 1
      ELSE 2
    END),
    city ASC;