【问题标题】:how to order the column by a field in oracle?oracle中如何按字段排序?
【发布时间】:2018-07-09 14:17:20
【问题描述】:

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

 - 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,---- 的行,然后返回按城市字母顺序排列的其余行。是否可以仅使用一个查询来做到这一点?

【问题讨论】:

  • 您可以通过引入另一个名为 ord 的布尔类型列并将纽约城市设置为 true 来做到这一点。然后你做select * from table order by ord, city
  • @Andrew Oracle SQL 没有布尔类型。您可以使用字符类型或数字类型。

标签: sql oracle


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    SELECT   id,
        name,
        city
      ORDER BY (
        CASE
          WHEN city LIKE 'New York%'
          THEN 1
          ELSE 2
        END),
        city ASC;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-25
      • 2019-07-15
      • 1970-01-01
      • 2020-01-12
      • 2015-10-24
      • 2012-11-08
      • 2016-01-06
      • 2011-06-15
      相关资源
      最近更新 更多