今天寫需求,要求將結果按照成本中心首字母排序,平且空放在最前面。
進入正題:
1。使用oracle自帶的函數:
按照首字母排序:nlssort(xxx,'NLS_SORT=SCHINESE_PINYIN_M')
例如:select * from qin t order by nlssort(t.ename,'NLS_SORT=SCHINESE_PINYIN_M');
將空值放在最前面只需要加上 nulls first
例如:select * from qin t order by nlssort(t.ename,'NLS_SORT=SCHINESE_PINYIN_M') nulls first;
我們可以輕松的實現這種排序。
擴展:按照筆畫排序:nlssort(xxx,'NLS_SORT=SCHINESE_STROKE_M');
按照部首排序: nlssort(xxx,‘NLS_SORT=SCHINESE_RADICAL_M’);
將null放在最后是: nulls last