Oracleorderby子句對NULL的排序-創(chuàng)新互聯(lián)

我們都知道在Oracle SQL語句中order by 是用來排序查詢出來的結(jié)果集的,而在Oracle中NULL值是一個很特殊的值,如果order by指定的列有NULL值,那排序結(jié)果又是怎樣的呢。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比武強網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式武強網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋武強地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

下面做一組實驗觀察一下order by時Oracle是怎么處理NULL的

版本11.2.0.4

1、創(chuàng)建測試表并插入測試數(shù)據(jù)

zx@ORCL>create table t (id number,name varchar2(10)); Table created. zx@ORCL>insert into t values(1,'zx'); 1 row created. zx@ORCL>insert into t values(2,'wl'); 1 row created. zx@ORCL>insert into t values(3,'zxt'); 1 row created. zx@ORCL>insert into t values(4,NULL); 1 row created. zx@ORCL>insert into t values(5,'yhz'); 1 row created. zx@ORCL>insert into t values(6,NULL); 1 row created. zx@ORCL>commit; Commit complete. zx@ORCL>select * from t; ID NAME ---------- ------------------------------  1 zx  2 wl  3 zxt  4  5 yhz  6 6 rows selected.

2、測試order by

zx@ORCL>select * from t order by name asc; ID NAME ---------- ------------------------------  2 wl  5 yhz  1 zx  3 zxt  6  4 6 rows selected. zx@ORCL>select * from t order by name desc; ID NAME ---------- ------------------------------  4  6  3 zxt  1 zx  5 yhz  2 wl 6 rows selected.

看到不同的排序方式,NULL值所排序的位置不同。升序(asc)NULL排在最后,降序(desc)NULL排在最前。

我們再來看看官方文檔是怎么描述的

ASC | DESC Specify the ordering sequence (ascending or descending). ASC is the default.

NULLS FIRST | NULLS LAST Specify whether returned rows containing nulls should appear first or last in the ordering sequence.

NULLS LAST is the default for ascending order, and NULLS FIRST is the default for descending order.

可以看到我們的實驗結(jié)果與官方文檔描述是一致的。而且還可以使用NULLS FIRST|NULLS LAST來決定NULL的值是排在最前還是排在最后。

3、再次做實驗驗證

zx@ORCL>select * from t order by name asc nulls first; ID NAME ---------- ------------------------------  6  4  2 wl  5 yhz  1 zx  3 zxt 6 rows selected. zx@ORCL>select * from t order by name asc nulls last; ID NAME ---------- ------------------------------  2 wl  5 yhz  1 zx  3 zxt  6  4 6 rows selected. zx@ORCL>select * from t order by name desc nulls first; ID NAME ---------- ------------------------------  4  6  3 zxt  1 zx  5 yhz  2 wl 6 rows selected. zx@ORCL>select * from t order by name desc nulls last; ID NAME ---------- ------------------------------  3 zxt  1 zx  5 yhz  2 wl  6  4 6 rows selected.

從結(jié)果可以看出使用NULLS FIRST|NULLS LAST可以直接控制NULL值在排序結(jié)果的首部還是尾部。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站標題:Oracleorderby子句對NULL的排序-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://muchs.cn/article6/pepog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計網(wǎng)站導(dǎo)航、動態(tài)網(wǎng)站微信小程序、微信公眾號關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司