在操作資料庫的時候經常需要order by進行排序,但是有的時候資料并沒有很好的格式化導致排序的結果不合我們的心意,如下圖:

如果我們要按照value進行排序的話,就會得到上面截圖的結果,解決方法有兩種:
1、從資料源下手,把 1 2 3 等資料補全為:01 02 03, 但是上面的資料屬于編碼資料是不能隨便修改的,那就只能采取第二種方法了
2、使用cast函式:CAST(value AS DECIMAL),就可以實作不改變原始資料,完成理想種的排序,如下圖

完整的sql陳述句如下:SELECT * from data WHERE range_code='CV02.01.102' ORDER BY CAST(value AS DECIMAL)
Ps:使用cast函式要注意 as后面的型別必須要能隱式轉換,否則就會報錯,例如把含有字母的char轉換為int 就會報錯:Syntax error converting the varchar value
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/426467.html
標籤:其他
上一篇:Redis在linux上的部署
