order by使用方法
1、ORDER BY 中关于NULL的处理
缺省处理,Oracle在Order by 时觉得null是最大值,所以假设是ASC升序则排在最后,DESC降序则排在最前。
当然,你也能够使用nulls first 或者nulls last 语法来控制NULL的位置。
Nulls first和nulls last是Oracle Order by支持的语法
假设Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(无论是asc 还是 desc)
假设Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (无论是asc 还是 desc)
使用语法例如以下:
--将nulls始终放在最前
select * from zl_cbqc order by cb_ld nulls first
--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last
2、几种排序的写法
单列升序:select<column_name> from <table_name> order by <column_name>; (默认升序,即使不写ASC)
单列降序:select <column_name> from <table_name> order by <column_name> desc;
多列升序:select <column_one>, <column_two> from <table_name> order by <column_one>, <column_two>;
多列降序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> desc;
多列混合排序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> asc;
3、今天看到的新写法
SQL> select * from tb;
BLOGID BLOGCLASS
---------- ------------------------------
1 人生
2 学习
3 工作
5 朋友
SQL> select * from tb order by decode(blogid,3,1,2), blogid;
BLOGID BLOGCLASS
---------- ------------------------------
3 工作
1 人生
2 学习
5 朋友
我所说的就是上面红色的那句话。实现的功能就是无论如何,BLOGID为3的值必须排在第一位,其它的记录依照BLOGID升序排序。
shiyiwan同学给我的解释是这种:“默认升序排序,blogid = 3时返回1,其它则返回2, 所以blogid = 3的记录排在最前啊。”
wildwave同学也给了个说法:“你将那个decode理解成前面select后面的列,依照那一列排序就好了。”
我又去试了一条语句,结果例如以下
SQL> select * from tb order by decode(blogid,3,1,2);
BLOGID BLOGCLASS
---------- ------------------------------
3 工作
5 朋友
1 人生
2 学习
我如今的理解是这种,通过decode()函数,BLOGID值为3的那条记录被转换为了1,而其它的记录都是2,那么依照这个顺序排序,肯定BLOGID为3的那条记录永远在最前面了,不仅如此,注意到后面还加了个按BLOGID默认升序排列,这也就是说对于那些被DECODE转换为2的记录来说,依照它们的BLOGID升序排序
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wh62592855/archive/2009/11/15/4813404.aspx
order by使用方法的更多相关文章
- Oracle中UNION和ORDER BY共用方法
问题 SQL语句中,UNION拼接两个单独的SQL时候,单独的SQL中加入ORDER BY会报错,ORDER BY只能放在句末. // 会报错的语句 SELECT S.S_ID AS ID,S.S_N ...
- SQL Server 分页方法汇总
PageSize = 30 PageNumber = 201 方法一:(最常用的分页代码, top / not in) UserId UserId from UserInfo order by Use ...
- SQL2008-分页显示3种方法
方法1: 适用于 SQL Server 2000/2005/2008 SELECT TOP 10 * FROM YieldRole WHERE id NOT IN ( SELECT TOP (10*( ...
- 【MySQL性能优化】改进MySQL Order By Rand()的低效率
<a href="http://click.aliyun.com/m/9153/">点击查看原文</a> 正 文: 最近由于需要研究了一下MYSQL的随 ...
- sql server两种分页方法
方法一: --分页方法一 OrderID,CustomerID, EmployeeID,OrderDate,ShippedDate,ShipName,ShipAddress,Freight from ...
- Oracle中打印99乘法表的13种方法
--实现1: select r1 || '*' || r1 || '=' || r1 * r1 A, decode(r2, '', '', r2 || '*' || r1 || '=' || r2 * ...
- ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作
查询方法 条件查询方法 where 方法 可以使用 where 方法进行 AND 条件查询: Db::table('think_user') ->where('name','like','%th ...
- SQL Server 快速大数据排序方法
SQL Server 中虽然有 ORDER BY NewID() 方法,但对于数据量比较大的结果集来说,排序那慢的可不是一星半点. 微软官方给了一种方案,https://msdn.microsoft. ...
- mvc area出现“找到多个与名为“Home”的控制器匹配的类型”错误的解决方法
出现该问题的原因是在默认的Golbal.asax.cs文件中已经注册了默认路由 public class MvcApplication : System.Web.HttpApplication ...
随机推荐
- A ResourcePool could not acquire a resource from its primary factory or source
出处:http://aaron81939097.iteye.com/blog/1144642 原配置: <bean id="dataSource" class="c ...
- hdu1325 Is It A Tree?并检查集合
pid=1325">职务地址 试想一下,在词和话题hdu1272是一样的. 可是hdu1272的博文中我也说了.数据比較水,所以我用非并查集的方法就AC了. 可是这题的数据没那么水,要 ...
- sql server 数据库 只有mdf文件,如何附加
直接附加就可以,SQL 会提示LOG文件找不到,可删除提示的错误行,只附加MDF文件,附加成功后,SQL会自动创建LOG文件.
- 玩转Web之Json(一)-----easy ui+ajax + json 中关于Json的解析问题
在easy ui中使用Ajax+Json实现前后的数据交互时,当后台数据传输到客户端是需对Json数据进行解析,这里将对Json数据解析做简单总结. (一) 对于服务器返回的数据若没有做类型说明,需要 ...
- POJ2029——Get Many Persimmon Trees
Get Many Persimmon Trees Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3656 Accepte ...
- JBoss配置解决高并发连接异常问题(转)
这两天一个项目在做压力测试的时候,发现只要并发数超过250个,连续测试两轮就会有连接异常出现,测试轮数越多出现越频繁,异常日志如下: Caused by: com.caucho.hessian.cli ...
- UVA 12538 Version Controlled IDE 解题报告
题意:给三种操作 1.在p位置插入一个字符串. 2.从p位置开始删除长度为c的字符串 3.输出第v个历史版本中从p位置开始的长度为c的字符串 解法:可以用平衡树做,但是不会.后来又听说可一用一个叫ro ...
- 【Android开发经验】来,咱们自己写一个Android的IOC框架!
到眼下位置.afinal开发框架也是用了好几个月了,还记得第一次使用凝视完毕控件的初始化和事件绑定的时候,当时的心情是多么的兴奋- -代码居然能够这样写!然后随着不断的学习,也慢慢的对IOC框架和注解 ...
- 看多csdn它还烂论坛?
什么? 版权声明:本文博主原创文章,博客,未经同意不得转载.
- HDU 4022 Bombing STL 模拟题
人工模拟.. #include<stdio.h> #include<iostream> #include<algorithm> #include<vector ...