ORDER BY子句

Oracle ORDER BY子句用于对结果集中的记录进行排序。 ORDER BY子句只能在SELECT语句中使用。

语法

Oracle/PLSQL 中的ORDER BY的语法是:

SELECT expressions
FROM tables
[WHERE conditions]
ORDER BY expression [ ASC | DESC ];

参数

  • expressions - 任何都可以满足要选择记录的条件。
  • tables - 任何都可以满足要选择记录的条件。
  • WHERE conditions - 任何都可以满足要选择记录的条件。
  • ASC - 可选的。它按照表达式(expression)以升序对结果集进行排序(如果没有提供修饰符,这是默认值)。
  • DESC - 可选的。它按表达式(expression)按降序对结果集进行排序。

注意

  • 如果在ORDER BY子句中未提供ASCDESC修饰符,则结果将按升序按表达式排序(这相当于ORDER BY expression ASC

示例1 - 不使用ASC/DESC属性进行排序

可以在使用Oracle ORDER BY子句时不指定ASCDESC值。 当在ORDER BY子句中省略指定属性时,排序顺序默认为ASC或按升序排序。

例如:

SELECT supplier_city
FROM suppliers
WHERE supplier_name = 'Microsoft'
ORDER BY supplier_city;

这个Oracle ORDER BY示例将按 supplier_city 字段升序排序返回所有记录,并等效于以下ORDER BY子句:

SELECT supplier_city
FROM suppliers
WHERE supplier_name = 'Microsoft'
ORDER BY supplier_city ASC;

大多数程序员如果想按升序排序,他们一般都会省略ASC属性。

示例2 - 按降序排序

在以降序对结果集排序时,可以在ORDER BY子句中使用DESC属性,如下所示:

SELECT supplier_city
FROM suppliers
WHERE supplier_name = 'Microsoft'
ORDER BY supplier_city DESC;

这个Oracle ORDER BY示例将按 supplier_city 字段排序返回的所有记录。

示例3 - 按相对位置排序

还可以使用Oracle ORDER BY子句对结果集中的相对位置进行排序,结果集中的第一个字段为1,第二个字段为2,依此类推。

例如:

SELECT supplier_city
FROM suppliers
WHERE supplier_name = 'Microsoft'
ORDER BY 1 DESC;

这个Oracle ORDER BY将按supplier_city字段降序排序返回所有记录,因为supplier_city字段位于结果集中的位置是#1,等效于以下ORDER BY子句:

SELECT supplier_city
FROM suppliers
WHERE supplier_name = 'Microsoft'
ORDER BY supplier_city DESC;

示例4 - 使用ASC和DESC属性

当使用Oracle ORDER BY子句对结果集排序时,可以在单个SELECT语句中使用ASCDESC属性。

例如:

SELECT supplier_city, supplier_state
FROM suppliers
WHERE supplier_name = 'Microsoft'
ORDER BY supplier_city DESC, supplier_state ASC;

这个Oracle ORDER BY查询将按照supplier_city字段降序顺序和按照supplier_state升序返回排序后的所有记录。

转载于:https://my.oschina.net/u/2263383/blog/846630

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值