問題描述:
在處理一般的資料記錄中,對於數字型別的字段,在oracle的排序中,預設把null值做為大於任何數字的型別,當然對於varchar2類 型的字段,預設也是該處理方式,但是客戶要求排序的過程中,需要把null的字段預設排在前邊(從小-->大)。一般的order by ***x,無法解決。
問題解決:
方案1:
可以使用複雜的使用sql:
select * from
(select a.*,rownum as my_sys_rownum from (
select deptid,nvl(bdzname,' '),nvl(vollevel,'0'),zbrl,nvl(zbts, '0'),
nvl(fzr,'0'),nvl(deptiddes,' '),nvl(tel,' '),nvl(runstatedes,' '),
nvl(address,' '),bdzid from v_bdz where rownum<2000
and zbrl is null
) aunion
select b.*,rownum+(select count(*) from (
select deptid,nvl(bdzname,' '),nvl(vollevel,'0'),zbrl,nvl(zbts, '0'),
nvl(fzr,'0'),nvl(deptiddes,' '),nvl(tel,' '),nvl(runstatedes,' '),
nvl(address,' '),bdzid from v_bdz where rownum<2000
and zbrl is null
)) as my_sys_rownum from (
select deptid,nvl(bdzname,' '),nvl(vollevel,'0'),zbrl,
nvl(zbts, '0'),nvl(fzr,'0'),
nvl(deptiddes,' '),nvl(tel,' '),nvl(runstatedes,' '),
nvl(address,' '),bdzid from v_bdz where rownum<2000
and zbrl is not null order by zbrl
) b)
order by my_sys_rownum desc
方案2:
可以利用oracle中可以對order by中對比較欄位做設定的方式來實現:
如: ……order by nvl( aaa,'-1')
關於oracle資料庫解鎖
microsoft windows 版本 10.0.14393 c 2016 microsoft corporation。保留所有權利。c windows system32 sqlplus nolog sql plus release 10.2.0.1.0 production on 星期日 7月 ...
資料庫 Oracle中建立資料庫
create database lihua 網上的說法是 oracle中的例項只對應乙個資料庫,出現此種情況說明oracle資料庫處於mount 裝載 或open狀態,需要使用startup nomount語句進行狀態更改,或者是直接使用dbca的圖形介面來建立 注 經測試,startup nomo...
資料庫 關於Oracle中 萬用字元的使用
在oracle中使用萬用字元查詢時,發現在萬用字元中帶有 表示範圍時相應資料無法顯示,但不會報錯,假如我想查詢名字中帶有字母o的人,以下兩條語句的作用是一樣的 select from employees copy t where t.first name not like o select from...