易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE处理排序空值

主要方法是通过使用CASE表达式来“标记”一个值是否为NULL。这里标记有两个值,一个表示NULL,一个表示非NULL。这样,只要在ORDER BY子句中增加标记列,便可以很容易的控制空值是排在前面还是排在后面,而不会被空值所干扰。
SQL> select ename,sal,comm from emp;
ENAME SAL COMM
---------- ---------- ----------
SMITH 800
ALLEN 1600 300
WARD 1250 500
JONES 2975
MARTIN 1250 1400
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
TURNER 1500 0
ADAMS 1100
ENAME SAL COMM
---------- ---------- ----------
JAMES 950
FORD 3000
MILLER 1300
14 rows selected.

//非空值按升序排序 空值排最后
SQL> select ename,sal,comm from
2 (
3 select ename,sal,comm,
4 case when comm is null then 0 else 1 end as is_null
5 from emp
6 ) x
7 order by is_null desc,comm
8 ;
ENAME SAL COMM
---------- ---------- ----------
TURNER 1500 0
ALLEN 1600 300
WARD 1250 500
MARTIN 1250 1400
SCOTT 3000
KING 5000
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300
BLAKE 2850
ENAME SAL COMM
---------- ---------- ----------
JONES 2975
SMITH 800
CLARK 2450
14 rows selected.

//非空值按降序排序 空值排最后
SQL> select ename,sal,comm from
2 (
3 select ename,sal,comm,
4 case when comm is null then 0 else 1 end as is_null
5 from emp
6 ) x
7 order by is_null desc,comm desc
8 ;
ENAME SAL COMM
---------- ---------- ----------
MARTIN 1250 1400
WARD 1250 500
ALLEN 1600 300
TURNER 1500 0
SCOTT 3000
KIN


相关文档:

oracle 找出两表之间重复数据

select * from ( select tb1.rollid from (select r.rollid as rollid from zh1_rool r where r.date_p >=to_date('2009-11-26 23:59:59','yyyy-mm-dd hh24:mi:ss') ) tb1
  where tb1.rowid !=
  (
select max(tb2.rown) from (select t.rowid as rown,t.lot_number as rollid
from inv.mtl_onh ......

[转载]oracle DBA technologies

之前看到一篇文章, 觉得不错! 看了后,发觉自己还有很多地方需要补足, 还需要努力啊!任重而道远!
DBA需要的技能
dba掌握的技术
    1.      os : linux,solaris或其他unix起码要一种
    2.      bash (不精通也要熟)  LINUX与 ......

解读ORACLE数据库的统一命名与编码规范

1、编写目的
使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2、适用范围
本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。
3、对象命名规范
3.1 数据库和SID
数据库名定义为系统名+模块名
★ 全局数据库名和例程SID 名要求一致
★ 因SID ......

oracle 用户密码和资源管理

oracle 用户密码和资源管理
  oracle中使用profile对用户密码和资源进行管理。
SQL> select * from dba_profiles order by resource_name;

PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
------------------------------ -------------------------------- ------- ......

ORACLE对字母和数字混合的数据排序

主要是通过replace和translate来实现
SQL> create view v_tt
2 as
3 select ename||' '||deptno as data
4 from emp;
View created.
SQL> select * from v_tt;
DATA
---------------------------------------------------
SMITH 20
ALLEN 30
WARD 30
JONES 20
MARTIN 30
BLAKE 30
CLARK 10
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号