ORDER BY [ ASC | DESC ] [ NULLS FIRST | LAST ]
create table hr.order_test (col_num number, col_var varchar2(32), col_date date) tablespace users;
insert into hr.order_test (col_num,col_var,col_date) values (3,'C',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (NULL,'G',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (2,'B',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (NULL,'E',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (1,'A', SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (NULL,'F',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (4,'D',SYSDATE);
commit;
--- Non ordered.
SQL> SELECT * FROM hr.order_test;
COL_NUM COL_VAR COL_DATE
---------- -------------------------------- ---------
3 C 20-FEB-15
G 20-FEB-15
2 B 20-FEB-15
E 20-FEB-15
1 A 20-FEB-15
F 20-FEB-15
4 D 20-FEB-15
--- We sorted the COL_NUM field in order ascending.
For default:
If the sort ASC then NULL LAST.
If the sort DESC then NULL FIRST.
SQL> SELECT * FROM hr.order_test ORDER BY COL_NUM ASC;
COL_NUM COL_VAR COL_DATE
---------- -------------------------------- ---------
1 A 20-FEB-15
2 B 20-FEB-15
3 C 20-FEB-15
4 D 20-FEB-15
F 20-FEB-15
G 20-FEB-15
E 20-FEB-15
--- In this case, we want to order ascending and that nulls values are shown first.
SQL> SELECT * FROM hr.order_test ORDER BY COL_NUM ASC NULLS FIRST;
COL_NUM COL_VAR COL_DATE
---------- -------------------------------- ---------
E 20-FEB-15
F 20-FEB-15
G 20-FEB-15
1 A 20-FEB-15
2 B 20-FEB-15
3 C 20-FEB-15
4 D 20-FEB-15
insert into hr.order_test (col_num,col_var,col_date) values (3,'C',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (NULL,'G',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (2,'B',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (NULL,'E',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (1,'A', SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (NULL,'F',SYSDATE);
insert into hr.order_test (col_num,col_var,col_date) values (4,'D',SYSDATE);
commit;
--- Non ordered.
SQL> SELECT * FROM hr.order_test;
COL_NUM COL_VAR COL_DATE
---------- -------------------------------- ---------
3 C 20-FEB-15
G 20-FEB-15
2 B 20-FEB-15
E 20-FEB-15
1 A 20-FEB-15
F 20-FEB-15
4 D 20-FEB-15
--- We sorted the COL_NUM field in order ascending.
For default:
If the sort ASC then NULL LAST.
If the sort DESC then NULL FIRST.
SQL> SELECT * FROM hr.order_test ORDER BY COL_NUM ASC;
COL_NUM COL_VAR COL_DATE
---------- -------------------------------- ---------
1 A 20-FEB-15
2 B 20-FEB-15
3 C 20-FEB-15
4 D 20-FEB-15
F 20-FEB-15
G 20-FEB-15
E 20-FEB-15
--- In this case, we want to order ascending and that nulls values are shown first.
SQL> SELECT * FROM hr.order_test ORDER BY COL_NUM ASC NULLS FIRST;
COL_NUM COL_VAR COL_DATE
---------- -------------------------------- ---------
E 20-FEB-15
F 20-FEB-15
G 20-FEB-15
1 A 20-FEB-15
2 B 20-FEB-15
3 C 20-FEB-15
4 D 20-FEB-15
Comments
Post a Comment