oracle中對字母加數字列的排序及截取字串函數substr介紹

來源:互聯網
上載者:User

假設列名為No,類型為varchar2,100行資料裡分別存放著W1~W100。

如果查詢語句為:

select * from table order by No

會得到按W1,W10,W100,W11,W12,……,W2,W20,W21,……的排序。

如果我們想得到按照數字大小來排序怎麼做呢?

一個解決方案是截去W,並將剩下的數字(注意:此時為varchar2類型)轉變為number類型,再對其排序。

這裡首先介紹一下substr函數。

substr
  Oracle中的截取字串函數。  文法如下:  substr( string, start_position, [ length ] )  參數分析:  string  字串值  start_position  截取字串的初始位置, Number型,start_position為負數時,表示從字串右邊數起。  length  截取位元,Number型  其中,length為可選,如果length為空白(即不填)則返回start_position後面的所有字元。  意思就是:  從start_position開始,取出length個字元並返回取出的字串。
       其中string參數那也可以使用列名,表示對一個列的內容進行全部截取。於是我們可以這樣排序:              order by to_number(substr(No,2))                       這樣就做到按數字大小進行排序了。
         歡迎大家訪問我的獨立技術部落格 道合|SameIdeal.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.