2009/04/15

order by

通常使用 order by 排序某欄位,  
若遇到該欄位為null,則排序可能非預期那樣, 
這時使用 order by Columns nulls first 即可


example : 
create table test
(
   vendor_id varchar2(16), 
   vendor_name varchar(64)
)
-->

insert into test(vendor_id,vendor_name) values('A001','test1'); 
insert into test(vendor_id,vendor_name) values('A002',''); 
insert into test(vendor_id,vendor_name) values('A003','test3'); 
--> 

select vendor_id,vendor_name 
from test
order by vendor_name asc 

執行結果 : 
vendor_id   vendor_name
A001 test1
A003 test3
A002

Script 改為下列方式
select vendor_id,vendor_name 
from test
order by vendor_name asc nulls first 

執行結果 : 
vendor_id  vendor_name
A002
A001 test1
A003 test3


總結 : 
nulls first -> 若欄位資料為null,則優先排序
nulls last -> 若欄位資料為null,則反之

沒有留言: