[Oracle][SQL Server][SQL][VARCHAR2][INT]DB欄位排序只排第一個字 - Slash Engineer 要多斜有多斜

Breaking

Slash Engineer 要多斜有多斜

程式設計的學習過程 (環境設置、開發環境、程式設計、語法練習、資料結構等等...) 99'暑假:六月初開始. 社會新鮮人:十一月初開始.

2015年1月16日 星期五

[Oracle][SQL Server][SQL][VARCHAR2][INT]DB欄位排序只排第一個字

剛剛我在排序一個名叫key100的欄位,
排序結果為:
1
2
23
26
5
6
8
9
正排反排都一樣,字首為2的會先排序到,

突然‧‧‧

!
!
!

key100是VARCHAR2...........
            key100是VARCHAR2...........
                        key100是VARCHAR2...........


靈感來時就像理智線斷掉一樣...
因為很重要!!所以打三次!!!



select * from yourtable
where 1=1
and key1 = 'Test'
and key2 like 'UUU%'
order by cast(key100 as int) asc --order by時將該欄位轉成int即可

記得轉成int 就可以囉!視為int排序囉!
int排序結果為:
1
2
5
6
8
9
23
26

另外,以上這是Oracle的方式,
SQL server請參考↓,但我沒試過SQL server,anyway~ Try it!!
order by convert(int, key100);


沒有留言:

張貼留言

問題沒有大小或好壞